尝试在J2EE预览服务器中启动Eclise Maven Web项目(在Glassfish4中,它运行正常)我收到错误:
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
Howewer,尝试在此论坛中为另一个topik提供建议: 在properties-> project-> 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才能解决这个问题,或者还有其他更好的解决方案呢?
答案 0 :(得分:0)
您可以在项目pom.xml
中添加以下依赖项
并尝试更新项目。&#39;
<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>