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

时间:2017-08-07 04:24:05

标签: java eclipse maven jsf

尝试在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才能解决这个问题,或者还有其他更好的解决方案呢?

1 个答案:

答案 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>