繁体   English   中英

WebLogic 11g(10.3.5.0)上的JSF2的回退工厂失败

[英]Fallback factory fails for JSF2 on Weblogic 11g (10.3.5.0)

我有一个正常运行的JSF2应用程序,该应用程序通常在Tomcat6 / 7上运行。 由于它现在也需要在weblogic上运行,因此我对项目设置进行了一些更改,包括在战争中的WEB-INF / lib中添加了el-impl-2.2.jar。

我还添加了web.xml:

<context-param>
  <param-name>com.sun.faces.expressionFactory</param-name>
  <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

weblogic.xml部署描述符包含:

<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>

尽管所有这些在Tomcat中仍然可以正常运行,但是在wls中此安装失败,并显示以下信息:

[HTTP:101216]Servlet: "Faces Servlet" failed to preload on startup in Web application: "app.war". java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key severe.no_factory_backup_failed at 
java.util.ResourceBundle.getObject(ResourceBundle.java:393) at
java.util.ResourceBundle.getString(ResourceBundle.java:353) at 
javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1002) at 
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316) at 
javax.faces.webapp.FacesServlet.init(FacesServlet.java:302) at
weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:299) at
weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:250) at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at 
weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) at 
weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:94) at 
weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:82) at 
weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:74) 
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:60) at 
weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:34) at
weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:638)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:579) at

有人遇到过类似的问题吗?

事实证明,将el-api.jar和el-impl.jar包含到我的项目中对我来说是一个解决方案。 另外,我必须在weblogic.xml中指定必须首先从战争中加载这些软件包,如下所示:

    <prefer-application-packages>
        <package-name>com.sun.el.*</package-name>
        <package-name>javax.el.*</package-name>
    </prefer-application-packages>

我不确定这是否是正确的处理方式。 在我看来,您似乎缺少WLS的DI绑定。 如果比较wlserver_10.3 \\ common \\ deployable-libraries \\ jsf-2.0.war \\ WEB-INF \\ lib \\中的可部署库,则会看到在升级到JSF2时必须提供的内容。 最值得注意的是,您的设置中缺少DI绑定。

试试看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM