2013-05-03 205 views
-1

我之前在Tomcat中開發了一個Web應用程序,並且在我的tomcat/lib目錄中有一些jar文件。現在我試圖在weblogic服務器上運行我的應用程序,所以我安裝了weblogic 10.3.6,創建了一個weblogic域並部署了我的應用程序。我複製我在tomcat/lib前面放置以下lib目錄下我的jar文件:weblogic中的NoClassDefFoundError異常

Middleware/user_projects/domains/my_domain/lib/ 

我相信lib目錄應該在類路徑,但是當我訪問類的文件在我的web應用程序我得到以下錯誤:

Caused by: java.lang.NoClassDefFoundError: com/sample/TestManager 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
     at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:295) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
     at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) 
     at weblogic.utils.classloaders.FilteringClassLoader.findClass(FilteringClassLoader.java:101) 
     at weblogic.utils.classloaders.FilteringClassLoader.loadClass(FilteringClassLoader.java:86) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:295) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:295) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
     at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) 
     at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:171) 
+0

com/sample/TestManager是在Middleware/user_projects/domains/my_domain/lib /中複製的一個jar中的類。 – Cris 2013-05-03 13:55:06

+0

轉到服務器的服務器啓動選項卡,並手動將其添加到類路徑以查看是否可以解決問題。 – 2013-05-03 15:39:00

回答

0

我想要求澄清,但我是新的和stackoverflow不允許我要求澄清。因此,我將發佈爲答案

當您在DOMAIN_HOME/lib中放置某些東西時,請記住JARS不會附加到系統/服務器類路徑。所創建的類加載器是系統/服務器類加載器的子代。

所以,這是在DOMAIN_HOME/lib目錄下的JAR任何類,就只有應用程序,如戰爭,耳朵等

考慮這個可見:

  • 如果你的戰爭/耳類是package1.A
  • 如果系統/服務器類路徑中有一個包含package2.B一個jar文件
  • 如果DOMAIN_HOME/lib中有一個包含package3.C
jar文件

如果你參考:
一)package2.B從package1.A
B)package3.C從package2.B


則 「A」 將通過,但 「B」 會失敗,類似的錯誤你得到了什麼。

相關問題