javax.faces.webapp.FacesServlet 类的 J2EE 预览错误



尝试在 J2EE 预览服务器中启动 Eclise Maven Web 项目(在 Glassfish4 中,它工作正常(我收到一个错误:

java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet

Howewer,试图像在这个论坛中的另一个topik上建议的那样进行修复: 在属性>项目>Fasets>用户库中设置 JSF-API-2.1,JAR (作为外部罐子,有什么不好的(, 我收到另一个错误:

Started ServerConnector@1727e0ec{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet

搜索解决方案我找到了信息,这是由 javaee-web-API 只是蓝图和服务器必须为它们实现。 这就是为什么例如,您为此编写 maven 依赖项的原因,例如:

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>

所以我想它也在这个外部罐子里,它只是不应该被包括在内。然后我必须添加什么jar来解决此问题,或者有其他更好的解决方案?

您可以将以下依赖项添加到项目pom.xml并尝试更新项目。

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>

或者您也可以添加

<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>

最新更新