2013-05-03 204 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” 会失败,类似的错误你得到了什么。

相关问题