2011-07-31 5 views
2

私のWebアプリケーションで、カスタムエラーページを使用しようとしています。
しかし、これはWeldでは機能しません。私が代わりにカスタムエラーページを取得する私のアプリでは非既存のページに移動すると、私は溶接から例外を参照してください。Weld&Tomcat7でカスタムエラーページが動作しない

SEVERE: Servlet.service() for servlet Faces Servlet threw exception 
java.lang.IllegalStateException: Must call associate() before calling activate() 
    at org.jboss.weld.context.AbstractConversationContext.activate(AbstractConversationContext.java:273) 
    at org.jboss.weld.jsf.WeldPhaseListener.activateConversations(WeldPhaseListener.java:110) 
    at org.jboss.weld.jsf.WeldPhaseListener.beforePhase(WeldPhaseListener.java:84) 
    at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:224) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:95) 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:106) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:334) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:473) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) 
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:466) 
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:387) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:181) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

私は、これはTomcatのバグであることを考えた:

https://issues.apache.org/bugzilla/show_bug.cgi?id=50789

しかし、

:それは私の のweb.xmlから

抜粋v.7.0.9で修正されています

Tomcat 7.0.19、JSF 2.0、Weld 1.1.2を使用しています。
何が起こりますか?

+0

以上は何もアクティブではありません。私はシームウィッケットで似たような問題を解決していましたが、結局、シームウィッケットを書き直して@RequestScopedのサポートを私のアプリケーションから落としました。しかし、それはおそらくあなたがJSFでやりたいことではありません。それはweld + JSF統合開発者の仕事です。万が一、クラスパスにweld-se-coreを追加しませんでしたか? –

答えて

0

は、溶接部のコンテキストでのみ溶接-servlet.jarをクラスパスに存在している、私は原因はRequestScopedため、そのコンテキストと思い

関連する問題