在websphere中部署时ClassNotFound

时间:2013-04-14 14:00:47

标签: websphere classloader noclassdeffounderror

我已经构建了一个包含以下内容的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

现在,当我在websphere 8.5.0.1中部署此war文件时,我得到:

[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存档中的课程时会出现此错误?

1 个答案:

答案 0 :(得分:2)

错误消息也说“初始化失败”。 java.lang.NoClassDefFoundError可能是由静态初始化程序中的未捕获异常引起的。因此找到了类文件,但static块的执行失败了。