找不到类weblogic.management.WeblogicMBean

时间:2010-04-12 10:10:49

标签: ant junit weblogic

当我尝试使用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导入到我的类中。

对真正出错的任何建议?

非常感谢。

1 个答案:

答案 0 :(得分:1)

NoClassDefFoundError通常表示在运行时中找不到该类的正确版本。

由于编译没问题,编译时的CLASSPATH是否与运行时相同的jar引用? 还要检查运行时CLASSPATH for JUnit中是否有多个weblogic.jar。

您的weblogic版本是什么,该类至少在版本9的weblogic.jar中。