Jboss EAP 6.2.3加载我的应用程序类之一时,出现此错误。

虽然我确实了解此错误表示什么的背景,但不确定我是否正确解释了"Implementing class"部分。调试EAP代码后,我能够找到在本机define调用期间失败的类。假设类名称为ClassX

[org.jboss.modules] (muxRequestListener-10) Failed to define class com.company.ClassX
in Module "deployment.earDeployment.myApp.war:main" from Service Module Loader: java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_35]
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_35]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_35]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.3.Final-redhat-1]


它是否仅表示类:ClassX认为它正在实现接口InterfaceY,但是由于最近的二进制更改,InterfaceY现在已成为Class之前的Interface

它甚至可能是由于在定义ClassX的过程中加载ClassX所依赖的任何其他类(我希望不是!)引起的,因为这确实可以帮助我查明错误,但似乎没有?

还是有可能这也可能是由于其他各种原因导致的错误,并且它只是将自身显示为"Implementing class"(我希望不会再出现)了吗?

最佳答案

我能够发现该错误确切说明了它的意思!

实际上,这是另一种加载了相同包结构的类型(与使用的库的不同版本相反),但是,罪魁祸首类型是Class,而预期类型是Interface cc>!

10-07 13:13