当我尝试使用Build ant文件以fork模式运行Junit测试用例(在单独的JVM中启动每个测试)时,我遇到了这个问题。
[junit]线程“main”中的异常java.lang.NoClassDefFoundError: weblogic / management / WebLogicMBean [junit] at java.lang.ClassLoader.defineClass1(Native Method)[junit] at java.lang.ClassLoader.defineClass(ClassLoader.java:621)[junit] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)[junit] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:56)[junit] 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)[junit] at java.security.AccessController.doPrivileged(Native Method)[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)[junit] at at java.lang.ClassLoader.loadClass(ClassLoader.java:307)[junit] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)[junit] 在java.lang.ClassLoader.loadClass(ClassLoader.java:252)[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)[junit] at java.lang.ClassLoader.defineClass1(Native Method)[junit] at java.lang.ClassLoader.defineClass(ClassLoader.java:621)[junit] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)[junit] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:56)[junit] 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)[junit] at java.security.AccessController.doPrivileged(Native Method)[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)[junit] at at java.lang.ClassLoader.loadClass(ClassLoader.java:307)[junit] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)[junit] 在java.lang.ClassLoader.loadClass(ClassLoader.java:252)[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)[junit] at java.lang.ClassLoader.defineClass1(Native Method)[junit] at java.lang.ClassLoader.defineClass(ClassLoader.java:621)[junit] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)[junit] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:56)[junit] 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:195)....
我的构建库文件夹中有库weblogic.jar,它被设置为junit任务的类路径。我看看这个文件,里面找不到WeblogicMBean.class。
但是,在Jdev中,如果我将库引用设置为此weblogic.jar文件并且编译我的类没有问题,我可以将weblogic.management.WeblogicMBean
导入到我的类中。
对真正出错的任何建议?
非常感谢。
答案 0 :(得分:1)
NoClassDefFoundError通常表示在运行时中找不到该类的正确版本。
由于编译没问题,编译时的CLASSPATH是否与运行时相同的jar引用? 还要检查运行时CLASSPATH for JUnit中是否有多个weblogic.jar。
您的weblogic版本是什么,该类至少在版本9的weblogic.jar中。