首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在WebLogic12.2.1上使用webflow部署JSF

无法在WebLogic12.2.1上使用webflow部署JSF
EN

Stack Overflow用户
提问于 2017-01-06 19:11:18
回答 1查看 2K关注 0票数 0

上下文:WebLogic12.2.1/JSF2.1.6/ Spring 2.3.2

我正在将几个JSF2.1应用程序从Weblogic 10.3.6迁移到Weblogic 12.2.1。

我成功地部署了一些问题后没有集成Webflow的应用程序(first problemsecond problem)。

但是现在我必须处理集成Spring 2.3.2的JSF应用程序,而且我面临着新的麻烦。

此外,此应用程序还具有以下maven依赖关系:

代码语言:javascript
运行
复制
<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>

我做了我在second problem中在weblogic-application.xml中解释过的相同的配置,但是我得到了以下错误:

问题1:

代码语言:javascript
运行
复制
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$3.next(ModuleStateDriver.java:237)
    at weblogic.application.internal.flow.ModuleStateDriver$3.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

代码语言:javascript
运行
复制
<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

但现在我又犯了一个错误:

问题2:

代码语言:javascript
运行
复制
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)

由于WebLogic12.2.1附带了JSF2.2,而我的项目附带了自己的JSF2.1,所以我考虑了资源的冲突,并将META-INF/mojarra_ext.taglib.xml添加到weblogic-application.xml中,例如:

代码语言:javascript
运行
复制
<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:

代码语言:javascript
运行
复制
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)

所以我被这个错误困住了。在前面的步骤中,我可能做错了什么。

有人想办法帮我吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-11 14:37:51

我通过删除jsf-facelets依赖的来解决这个问题,这在我的情况下是没用的:

代码语言:javascript
运行
复制
<dependency>
    <groupId>com.sun.facelets</groupId>
    <artifactId>jsf-facelets</artifactId>
    <version>1.1.14</version>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41512681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档