2013-04-14 70 views
1

部署時,我有建立與以下內容EAR文件:ClassNotFound的在WebSphere

myear.ear 
    - > META-INF 
    - > mywar.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) 

爲什麼當這個類位於耳朵檔案中時會出現這個錯誤?

回答

2

該錯誤消息還說「初始化失敗」。 A java.lang.NoClassDefFoundError可能由靜態初始化程序中未捕獲的異常引起。所以類文件已經找到,但static塊的執行失敗。