2014-11-01 89 views
0

我想一個EAR文件部署到JBoss Wildfly(8.1.0),但即時得到以下異常:
Jboss Wildfly EJB3和Mybatis部署錯誤:NoSuchMethodError javax.persistence.Table.indexes()[Ljavax/persistence/Index;

Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; 


我EAR文件包含其中包含的MyBatis的EJB JAR(3.2版本。 7)依賴於cglib(版本:3.1)的persistnence單元。
這是非常相同的耳朵文件部署的工作沒有問題在JBoss 7(版本7.1.1)
基於錯誤說方法沒有找到,但我知道類和方法在那裏,它必須在新的一些類衝突版本的jboss。

回答

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>