Tomcat6WebサーバーでApacheMyFaces2.1.7を使用してJSF2.0Webアプリケーションを実行しようとしています。このアプリは、Tomahawk 1.1.11と式言語2.2(el-impl-2.2.jar)を使用しています。そのために、myfaces-apiとmyfaces-implをTomcats libフォルダーに入れ、Tomcatsel-api.jarを2.2バリアントに交換しました。
アプリの最初のページを呼び出すと、常にエラーが発生します。
java.lang.IllegalStateException: No Factories configured for this Application. This
happens if the faces-initialization does not work at all - make sure that you properly
include all configuration settings necessary for a basic faces application and that all
the necessary libs are included. Also check the logging output of your web application
and your container for any exceptions!
If you did that and find nothing, the mistake might be due to the fact that you use
some special web-containers which do not support registering context-listeners via TLD
files and a context listener is not setup in your web.xml.
A typical config looks like this;
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
javax.faces.FactoryFinder._getFactory(FactoryFinder.java:286)
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:206)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:116)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:679)
私は間違いなく私ので言及されているxmlスニペットを持っていweb.xml
ます。コードをデバッグしようとしましたが、registeredFactoryNames
の267行目javax.faces.FactoryFinder
が空であることがわかりました。これがエラーの原因です。しかし、なぜそうなるのかわかりません。そこには何が必要で、どうすればそこに到達できますか?
面白いことに、Webアプリは埋め込み桟橋8を使用して完全に実行されます。したがって、依存関係の問題である必要があります。
これらすべてについてより深い洞察を持っている誰かがここで私を助けてくれることを願っています。