Mojarra2.1.xおよび2.2をApacheTomcat 7.0.42以降にデプロイすると、java.lang.UnsupportedOperationExceptionが発生します。

zzhu8192

Mojarra2.1.27を使用するjava7 se、JSF2.1に基づくJSFWebアプリケーションは、Apache Tomcat7.0.41以下で正常に動作していました。Tomcat 7.0.42以降にアップグレードしようとすると(7.0.50までのすべてのバージョンを試しました)、アプリケーションの起動後、Webアプリケーション内の任意のURLに最初にヒットすると、tomcatに次のエラーが表示されます。ログ:

私はこれをデバッグしましたが、例外の原因は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)

この起動時の例外の問題を、Hello WorldのみでバッキングBeanがない静的JSFページが1つだけで、以下に示す最小限の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>
ミケーレ・マリオッティ

その廃止されたリスナーを削除し、

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

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ