无法在 Weblogic 12.2.1 上使用 webflow 部署 JSF
Cannot deploy JSF with webflow on Weblogic 12.2.1
上下文:Weblogic 12.2.1 / JSF 2.1.6 / Spring Webflow 2.3.2
我正在将几个 JSF 2.1 应用程序从 Weblogic 10.3.6 迁移到 Weblogic 12.2.1。
在遇到一些问题后,我成功部署了未集成 Webflow 的应用程序 (, )。
但是现在我要处理集成了SpringWebflow 2.3.2的JSF应用程序,我又遇到了新的麻烦
此应用程序还具有以下 Maven 依赖项:
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-faces</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.14</version>
</dependency>
我在 weblogic-application.xml
中做了我在 中解释的相同配置,但我收到以下错误:
问题 1:
weblogic.application.ModuleException: java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory.
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:237)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:232)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory.
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1008)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:302)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:343)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:294)
Truncated. see log file for complete stacktrace
我注意到以下侦听器存在于我的非 webflow JSF 应用程序的 web.xml
中,但不存在于我的 webflow JSF 应用程序中。
所以我按照建议添加了它 in this post.
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
但现在我又遇到了另一个错误:
问题 2:
com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: com.sun.faces.config.ConfigurationException: Unable to parse document 'jar:file:/C:/bea12.2.1/wlserver/modules/glassfish.jsf.jar!/META-INF/mojarra_ext.taglib.xml': null
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:672)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
由于 Weblogic 12.2.1 带有 JSF 2.2 而我的项目带有它自己的 JSF 2.1,我想到了资源冲突,我将 META-INF/mojarra_ext.taglib.xml
添加到 weblogic-application.xml
例如:
<wls:prefer-application-resources>
<wls:resource-name>javax.faces.*</wls:resource-name>
<wls:resource-name>com.sun.faces.*</wls:resource-name>
<wls:resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</wls:resource-name>
<wls:resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</wls:resource-name>
<wls:resource-name>META-INF/resources/javax.faces/jsf.js</wls:resource-name>
<wls:resource-name>META-INF/resources/javax.faces/jsf-uncompressed.js</wls:resource-name>
<wls:resource-name>META-INF/mojarra_ext.taglib.xml</wls:resource-name>
</wls:prefer-application-resources>
这导致了这个全新的错误!!
问题 3:
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! com.sun.facelets.tag.jstl.fn.JstlFnLibrary cannot be cast to com.sun.faces.facelets.tag.TagLibrary
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:375)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassCastException: com.sun.facelets.tag.jstl.fn.JstlFnLibrary cannot be cast to com.sun.faces.facelets.tag.TagLibrary
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTaglibraryClass(FaceletTaglibConfigProcessor.java:280)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:261)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
所以我被这个错误困住了。可能是我之前步骤做错了
有没有人有想法帮助我?
提前致谢。
我通过删除 jsf-facelets
依赖关系解决了这个问题,这对我来说没有用:
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.14</version>
</dependency>
上下文:Weblogic 12.2.1 / JSF 2.1.6 / Spring Webflow 2.3.2
我正在将几个 JSF 2.1 应用程序从 Weblogic 10.3.6 迁移到 Weblogic 12.2.1。
在遇到一些问题后,我成功部署了未集成 Webflow 的应用程序 (
但是现在我要处理集成了SpringWebflow 2.3.2的JSF应用程序,我又遇到了新的麻烦
此应用程序还具有以下 Maven 依赖项:
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-faces</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.14</version>
</dependency>
我在 weblogic-application.xml
中做了我在
问题 1:
weblogic.application.ModuleException: java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory.
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:237)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:232)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory.
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1008)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:302)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:343)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:294)
Truncated. see log file for complete stacktrace
我注意到以下侦听器存在于我的非 webflow JSF 应用程序的 web.xml
中,但不存在于我的 webflow JSF 应用程序中。
所以我按照建议添加了它 in this post.
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
但现在我又遇到了另一个错误:
问题 2:
com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: com.sun.faces.config.ConfigurationException: Unable to parse document 'jar:file:/C:/bea12.2.1/wlserver/modules/glassfish.jsf.jar!/META-INF/mojarra_ext.taglib.xml': null
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:672)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
由于 Weblogic 12.2.1 带有 JSF 2.2 而我的项目带有它自己的 JSF 2.1,我想到了资源冲突,我将 META-INF/mojarra_ext.taglib.xml
添加到 weblogic-application.xml
例如:
<wls:prefer-application-resources>
<wls:resource-name>javax.faces.*</wls:resource-name>
<wls:resource-name>com.sun.faces.*</wls:resource-name>
<wls:resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</wls:resource-name>
<wls:resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</wls:resource-name>
<wls:resource-name>META-INF/resources/javax.faces/jsf.js</wls:resource-name>
<wls:resource-name>META-INF/resources/javax.faces/jsf-uncompressed.js</wls:resource-name>
<wls:resource-name>META-INF/mojarra_ext.taglib.xml</wls:resource-name>
</wls:prefer-application-resources>
这导致了这个全新的错误!!
问题 3:
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! com.sun.facelets.tag.jstl.fn.JstlFnLibrary cannot be cast to com.sun.faces.facelets.tag.TagLibrary
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:375)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassCastException: com.sun.facelets.tag.jstl.fn.JstlFnLibrary cannot be cast to com.sun.faces.facelets.tag.TagLibrary
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTaglibraryClass(FaceletTaglibConfigProcessor.java:280)
at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:261)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:362)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:725)
所以我被这个错误困住了。可能是我之前步骤做错了
有没有人有想法帮助我?
提前致谢。
我通过删除 jsf-facelets
依赖关系解决了这个问题,这对我来说没有用:
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.14</version>
</dependency>