3

JBOSS 7.1.0でJSF(Primefaces)アプリケーションをデプロイしようとしています。

次のエラーが発生します。

18:17:03,390 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (MSC 
service thread 1-8) Critical error during deployment: :  
com.sun.faces.config.ConfigurationException:Factory  
'javax.faces.context.PartialViewContextFactory' was not configured properly.
    at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactories
Exist(FactoryConfigProcessor.java:305) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAP
SHOT]
    at com.sun.faces.config.processor.FactoryConfigProcessor.process(Factory
ConfigProcessor.java:219) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:361)
[jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureLi
stener.java:225) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at org.apache.catalina.core.StandardContext.contextListenerStart(Standar
dContext.java:3392) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
850) [jbossweb-7.0.10.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentS
ervice.java:90) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(Se
rviceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceCont
rollerImpl.java:1746)

何か案は?

ありがとう。

4

1 に答える 1

6

これは、Web アプリケーションのランタイム クラスパスで別の JSF 実装と競合していることを示しています。JBoss AS、Glassfish、WebSphere、Weblogic などの本格的な Java EE アプリケーション サーバーは、Java EE API の一部であるため、JSF がバンドルされて出荷されています。Web/WEB-INF/libアプリケーションにも JSF を指定すると、アプリケーション サーバーにバンドルされた JSF と競合する可能性があります。JSF API 部分は appserver 提供の JSF ライブラリからロードされますが、JSF impl 部分は webapp 提供の JSF ライブラリからロードされます。バージョンが異なる場合、このような構成エラーが発生します。

次の 2 つのオプションがあります。

  1. webapp にバンドルされた JSF を削除し、サーバーにバンドルされた JSF に依存します。

  2. 代わりに、webapp にバンドルされた JSF を使用するようにサーバーに指示します。その方法は、サーバーのメーカー/バージョンによって異なります。JBoss 7.x の特定のケースでは、次のコンテキスト パラメータを webapp の に追加するだけweb.xmlです。

    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param> 
    

Tomcat、Jetty などの Barebones JSP/Servlet コンテナーには、JSF がバンドルされた状態で出荷されません。そのため、/WEB-INF/libこのようなコンテナーを対象とする場合は、独自の JSF ライブラリを提供する必要があります。

以下も参照してください。

于 2012-04-05T12:46:37.683 に答える