找不到类 weblogic.management.WeblogicMBean

发布于 2024-08-28 04:10:29 字数 2569 浏览 4 评论 0原文

当我尝试使用 Build ant 文件在 fork 模式下运行 Junit 测试用例(在单独的 JVM 中启动每个测试)时,我遇到了这个问题。

[junit] 线程“main”中出现异常 java.lang.NoClassDefFoundError: weblogic/management/WebLogicMBean [junit] 位于 java.lang.ClassLoader.defineClass1(Native Method) [junit] 位于 java.lang.ClassLoader.defineClass(ClassLoader.java:621) [junit] 位于 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) [junit] 在 java.net.URLClassLoader.access$000(URLClassLoader.java:56) [junit] 在 java.net.URLClassLoader$1.run(URLClassLoader.java:195) [junit] 在 java.security.AccessController.doPrivileged(本机方法)[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) [junit] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) [junit] 位于 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [junit] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) [junit] 处 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) [junit] 在 java.lang.ClassLoader.defineClass1(Native Method) [junit] 处 java.lang.ClassLoader.defineClass(ClassLoader.java:621) [junit] 位于 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) [junit] 在 java.net.URLClassLoader.access$000(URLClassLoader.java:56) [junit] 在 java.net.URLClassLoader$1.run(URLClassLoader.java:195) [junit] 在 java.security.AccessController.doPrivileged(本机方法)[junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) [junit] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) [junit] 位于 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [junit] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) [junit] 处 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) [junit] 在 java.lang.ClassLoader.defineClass1(Native Method) [junit] 处 java.lang.ClassLoader.defineClass(ClassLoader.java:621) [junit] 位于 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) [junit] 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) [junit] 在 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 导入到我的类中。

有什么建议说明真正出了什么问题吗?

多谢。

I meet this problem when I try to run Junit test case in fork mode (starting each test in a separate JVM) using Build ant file.

[junit] Exception in thread "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]
at 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
java.lang.ClassLoader.loadClass(ClassLoader.java:307) [junit] at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [junit]
at 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]
at 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
java.lang.ClassLoader.loadClass(ClassLoader.java:307) [junit] at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [junit]
at 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]
at java.net.URLClassLoader$1.run(URLClassLoader.java:195) ....

I have the library weblogic.jar in my build library folders, which is set as classpath for the junit task. I look at this file and can't find the WeblogicMBean.class inside.

However, in Jdev, I can import weblogic.management.WeblogicMBean into my class if I set library reference to this weblogic.jar file and compile my class without problem.

Any suggestion of what really goes wrong?

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谜兔 2024-09-04 04:10:29

NoClassDefFoundError 通常意味着在运行时找不到该类的正确版本。

既然你的编译没问题,那么编译时的 CLASSPATH 是否引用与运行时相同的 jar?
还要检查 JUnit 的运行时 CLASSPATH 中是否存在多个 weblogic.jar。

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

NoClassDefFoundError usually means the correct version of the class was not found at runtime.

Since your compile is fine, does your CLASSPATH at compile time refer to the same jar as at runtime?
Also check if there are multiple weblogic.jar in the runtime CLASSPATH for JUnit.

Whats your version of weblogic, the class is in the weblogic.jar for version 9 at least.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文