0

WAS コンソールでアプリケーションを開始するときに問題に直面しています。アプリケーションは単純な Hello World JSF サーブレットです。

Websphere アプリケーション サーバー バージョン 7.0.0.9 を使用しています。

JSF 1.2 と facelets 1.1.14

アプリケーションを起動しようとすると、ログに次のエラーが表示されます。これを修正する方法はありますか?

[15/06/12 15:13:49:747 BST] 00000045 config        I   Initializing Sun's JavaServer Faces implementation (1.2_07-b03-FCS) for context '/JsfServletDeployTest'
[15/06/12 15:13:49:756 BST] 00000045 webapp        E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated SRVE0283E: Exception caught while initializing context: {0}
                                 java.lang.NoClassDefFoundError: com.sun.faces.config.DbfFactory (initialization failure)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
    at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:276)
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:202)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:175)
    at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1678)

以下の例外をさらに下に:

[15/06/12 15:13:49:771 BST] 00000045 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0100E: Uncaught init() exception created by servlet Faces Servlet in application JsfServletDeployTest_war: java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
    at com.ibm.ws.cache.servlet.ServletWrapper.init(ServletWrapper.java:238)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
4

2 に答える 2

1

私も同じ問題に遭遇しましたが、私もそれに対する答えを得たと思います...

サーバーが WPS 7.0 で JSF(1.2) アプリケーションなしで既に起動されている場合、クラスローダーに SUN-JSF クラスをロードしないようです。

そのため、JSF 1.2 を使用してポートレットのアプリケーションをデプロイしただけでは、そのクラスはサーバーのブートストラップによってロードされる必要があるため、動作を開始せず、クラスを見つけることができません。

ここで、そのアプリケーションをデプロイしてサーバーを再始動すると、JSF1.2 アプリケーションの初期化時に、必要な SUN-JSF ライブラリーもロードされます。したがって、ポートレットをクリックすると、ポートレットがロードされます。

したがって、ポートレットをデプロイしたら、基本的にサーバーを再起動する必要があります。ただし、これは最初の JSF 1.2 アプリケーションのみに限定する必要があります。

お役に立てれば。

//HP

于 2012-11-12T11:06:08.437 に答える
0

同じ問題に直面していましたが、デバッグ後、「myfaces-api.jar」と「myfaces-impl.jar」がクラスパスから欠落していることがわかりました。それらを含めた後、アプリケーションはエラーなしで正しく起動しました。該当するかどうかを確認してください。

于 2012-06-21T22:47:19.043 に答える