1

次の内容の ear ファイルを作成しました。

myear.ear
  - > META-INF
  - > mywar.war

war ファイルの内容は次のとおりです。

mywar.war
  - > META-INF
  - > WEB-INF
       - > classes
       - > jsp
       - > lib
            - > myjar.jar
       - > applicationContext.xml
       - > ....

myjar.jar には次のクラスが含まれます。

com.myapp.config.Configurator

この war ファイルを websphere 8.5.0.1 にデプロイすると、次のようになります。

[11-04-13 10:16:54:875 CEST] 00000065 servlet       I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [isclite] [/ibm/console] [/com.ibm.ws.console.appmanagement/CtxRootForWebMod.jsp]: Initialization successful.
[11-04-13 10:23:30:488 CEST] 00000062 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper service Uncaught service() exception thrown by servlet resourceLoader: java.lang.NoClassDefFoundError: com.myapp.config.Configurator (initialization failure)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:168)
    at com.myapp.web.servlet.WebResourceServlet.doPost(WebResourceServlet.java:60)
    at com.myapp.web.servlet.WebResourceServlet.doGet(WebResourceServlet.java:45)

クラスが ear アーカイブにあるときにこのエラーが発生するのはなぜですか?

4

1 に答える 1

2

エラー メッセージには、「初期化に失敗しました」というメッセージも表示されます。java.lang.NoClassDefFoundError静的初期化子でキャッチされない例外が原因である可能性があります。したがって、クラス ファイルは見つかりましたが、staticブロックの実行は失敗しました。

于 2013-04-14T16:17:16.740 に答える