zzh*_*192 5 jsf-2 java-7 tomcat7 mojarra jsf-2.2
我们的JSF Web应用程序基于java 7 se,JSF 2.1,使用Mojarra 2.1.27在Apache Tomcat 7.0.41及更低版本上运行良好.当我们尝试升级到Tomcat 7.0.42及更高版本时(我们已经尝试了每个版本高达7.0.50),在应用程序启动后,在第一次点击webapp中的任何URL时,我们在tomcat中看到以下错误日志:
我通过这个调试了,看起来Exception的来源是defaultFacesContext为null.
INFO: Server startup in 1591 ms
Feb 03, 2014 6:32:25 PM org.apache.catalina.core.StandardContext fireRequestDestroyEvent
SEVERE: Exception sending request initialized lifecycle event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.UnsupportedOperationException
at javax.faces.context.FacesContext.getExceptionHandler(FacesContext.java:287)
at javax.faces.event.ExceptionQueuedEventContext.getListenersForEventClass(ExceptionQueuedEventContext.java:262)
at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2128)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:289)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:247)
at com.sun.faces.application.WebappLifecycleListener.requestDestroyed(WebappLifecycleListener.java:125)
at com.sun.faces.config.ConfigureListener.requestDestroyed(ConfigureListener.java:344)
at org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6151)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:207)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Run Code Online (Sandbox Code Playgroud)
我用一个非常简单的应用程序重现了这个启动异常问题,只有一个静态JSF页面只有Hello World而没有支持bean,以及一个最小的web.xml,如下所示.在Tomcat 7.0.41上,一切都按预期工作,但总是会导致Tomcat 7.0.42+上出现以下错误.
只是想知道是否有其他人遇到过这个问题?
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>JSF TEST</display-name>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
删除那个过时的监听器,然后放
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4780 次 |
| 最近记录: |