当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
现在变为{ {1}}以前是Class
?
甚至可以在定义Interface
的过程中加载ClassX
所依赖的任何其他类(我希望不是!),因为这应该可以帮助我查明错误,但不会#39; t似乎?
或者是否有可能这也可能是由于错误导致的各种其他原因造成的,它只是表现为ClassX
(我希望不会再次出现)?
答案 0 :(得分:1)
我能够发现错误正是它所说的!
事实上,另一种类型的包装结构被加载(与正在使用的库的不同版本相反),但它只是罪魁祸首类型是Class
as与Interface
的预期类型相反!