【问题标题】:Exception when Deploy a JSF war on Tomcat [duplicate]在Tomcat上部署JSF战争时出现异常[重复]
【发布时间】:2015-12-20 07:52:24
【问题描述】:

我有 JSF 战争文件并将其部署到 Tomcat8。但是,当我启动它时,出现以下异常:

23-Sep-2015 08:55:39.664 INFO [http-nio-4747-exec-15] org.apache.catalina.core.ApplicationContext.log HTMLManager: start: Starting web application '/jsfexample'
23-Sep-2015 08:55:39.709 SEVERE [http-nio-4747-exec-15] org.apache.catalina.core.ApplicationContext.log FAIL - Application at context path /jsfexample could not be started
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/jsfexample]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1293)
        ......................
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet
        at java.lang.ClassLoader.defineClass1(Native Method)
        ... 32 more

23-Sep-2015 08:55:39.711 INFO [http-nio-4747-exec-15] org.apache.catalina.core.ApplicationContext.log HTMLManager: list: Listing contexts for virtual host 'localhost'

【问题讨论】:

  • 你在 Artifacts 中设置了Output directory 吗?
  • @Samane,其实不知道。

标签: java jsf tomcat deployment tomcat8


【解决方案1】:

我在 Tomcat 7 中遇到了同样的问题,我通过添加完整的 JSF maven 依赖项解决了这个问题(我缺少 jsf-impl):

<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-impl</artifactId>
   <version>2.2.12</version>
</dependency>
<dependency>
   <groupId>javax.faces</groupId>
   <artifactId>javax.faces-api</artifactId>
   <version>2.2</version>
</dependency>

我想这同样适用于 Tomcat 8。

【讨论】:

  • 愿 Java 之神伴随你一生。你刚刚为我结束了 3 个小时的奋斗。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
相关资源
最近更新 更多