我正在尝试将JSF 2.1 Web应用程序部署到Weblogic 12.1应用程序服务器,但部署失败,出现以下异常
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED!
com.oracle.injection.integration.jsf.WeblogicFacesConfigResourceProvider
cannot be cast to com.sun.faces.spi.ConfigurationResourceProvider
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:377)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:582)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
Truncated. see log file for complete stacktrace
我正在使用Mojarra实现版本2.1.13 – 这是相应的pom.xml条目:
com.sun.faces
jsf-api
2.1.13
com.sun.faces
jsf-impl
2.1.13
我在weblogic.xml中添加了以下行,以防止weblogic服务器加载运送的jsf实现:
false
javax.faces.*
com.sun.faces.*
com.bea.faces.*
javax.faces.*
com.sun.faces.*
com.bea.faces.*
META-INF/services/javax.servlet.ServletContainerInitializer
WeblogicFacesConfigResourceProvider包含在weblogic.jar中.
那么这里出了什么问题? – 任何提示?
解
好的,我找到了解决方案:您必须将META-INF / services / com.sun.faces.spi.FacesConfigResourceProvider添加到weblogic.xml中的prefer-application-resources-section.这个配置对我有用:
假
javax.faces.
com.sun.faces.
com.bea.faces.*
javax.faces.*
com.sun.faces.*
com.bea.faces.*
META-INF/services/javax.servlet.ServletContainerInitializer
META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider