尝试在 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>