我试图将一个EAR文件部署到Jboss Wildfly(8.1.0),但我得到以下异常:
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
我的EAR文件包含一个EJB jar,其中包含mybatis(版本3.2.7)persistnence单元,它对cglib(版本:3.1)具有依赖性。
这个相同的ear文件部署并且在JBoss 7(版本7.1.1)中没有问题
基于错误说该方法未找到,但我知道类和方法在那里它必须是新版本的jboss中的一些类冲突。
答案 0 :(得分:0)
经过一些调查和剖析耳朵文件,我找到了答案。问题是我的EJB jar中包含的asm.jar是cglib的子依赖项。包含jboss的jar和EAR jar之间存在类冲突。要修复它,只需在asm子依赖项的cglib依赖项上添加maven排除。
<exclusions>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
</exclusions>