You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求在Apache Tomcat 9运行Java EE Web Profile 8的规范Maven依赖列表

错误根因

你遇到的报错是因为仅引入了Java EE Web Profile 8的API接口依赖,没有引入对应规范的实现包。Apache Tomcat 9本身仅实现了Servlet 4.0、JSP 2.3、EL 3.0、WebSocket 1.1、JASPIC 1.1这几个基础规范,Web Profile 8中包含的JSF、CDI、JPA、Bean Validation等其余规范都没有内置实现,需要手动引入对应实现包才能运行。

你当前引入的jakarta.jakartaee-web-api:8.0.0仅包含规范接口,默认scope为compile会和Tomcat自带的Servlet等基础规范类冲突,首先需要调整这个依赖的配置。


完整POM依赖配置方案

第一步:调整API基础依赖

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-web-api</artifactId>
    <version>8.0.0</version>
    <scope>provided</scope>
</dependency>

第二步:按需引入对应规范的实现包

不需要的组件可以直接跳过,减少应用体积:

  • JSF 2.3实现(当前报错就是缺少该依赖)
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.3.14</version>
</dependency>
  • CDI 2.0实现
<dependency>
    <groupId>org.jboss.weld.servlet</groupId>
    <artifactId>weld-servlet-shaded</artifactId>
    <version>3.1.9.Final</version>
</dependency>
  • JPA 2.2实现
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.32.Final</version>
</dependency>
  • Bean Validation 2.0实现
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.2.5.Final</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.0</version>
</dependency>
  • JSON处理相关实现
<!-- JSON-P 1.1 -->
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1.6</version>
</dependency>
<!-- JSON-B 1.0 -->
<dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>yasson</artifactId>
    <version>1.0.8</version>
</dependency>
  • JAX-RS 2.1实现(需要开发REST接口时引入)
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.37</version>
</dependency>

注意事项

  1. 所有依赖版本都要匹配Java EE 8规范要求,不要引入Jakarta EE 9及以上版本的依赖,这类依赖已经全面改为jakarta.*包名,和Tomcat 9使用的javax.*包名不兼容,会出现类转换异常。
  2. 配置完成后清理本地Maven缓存,重新打包部署即可解决当前的MissingResourceException报错。

内容的提问来源于stack exchange,提问作者Hendré

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:04