0

私は、通常 Tomcat6/7 で実行される動作中の JSF2 アプリケーションを持っています。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

誰かが以前に同様の問題に遭遇したことがありますか?

4

2 に答える 2

1

プロジェクトに el-api.jar と el-impl.jar を含めることが解決策であることがわかりました。さらに、次のように、これらのパッケージを最初に war からロードする必要があることを weblogic.xml で指定する必要がありました。

    <prefer-application-packages>
        <package-name>com.sun.el.*</package-name>
        <package-name>javax.el.*</package-name>
    </prefer-application-packages>
于 2012-05-04T11:31:30.673 に答える
0

これが正しい方法であるかどうかはわかりません。私には、WLS の DI バインディングが欠落しているようです。wlserver_10.3\common\deployable-libraries\jsf-2.0.war\WEB-INF\lib\ にあるデプロイ可能なライブラリを比較すると、JSF2 にアップグレードするために war で提供する必要があるものがわかります。最も顕著なのは、DI バインディングがセットアップにないことです。

試してみる。

于 2012-05-04T06:50:58.070 に答える