在JBoss 7.1.0上部署Primefaces应用程序时出错

时间:2012-04-04 22:57:47

标签: java jsf primefaces jboss7.x

我正在尝试在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)

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:6)

这表明在webapp的运行时类路径中与另一个JSF实现存在冲突。像JBoss AS,Glassfish,WebSphere,Weblogic等完全成熟的Java EE应用程序服务器已经捆绑了JSF,因为它是Java EE API的一部分。如果您在webapp的/WEB-INF/lib中提供JSF,则可能与appserver捆绑的JSF冲突。 JSF API部分将从appserver提供的JSF库加载,但JSF impl部分将从webapp提供的JSF库加载。如果它们的版本不同,那么您将收到类似的配置错误。

您有两个选择:

  1. 删除webapp-bundled JSF并依赖服务器捆绑的JSF。

  2. 告诉服务器使用webapp-bundled JSF。如何做到这一点取决于服务器make / version。在您使用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> 
    
  3. Barebones JSP / Servlet容器(如Tomcat,Jetty等)不附带JSF捆绑,这就是为什么在定位此类容器时需要在/WEB-INF/lib中提供自己的JSF库。

    另见:

相关问题