hibernate 와 apache cxf 를 사용하려던 차에 asm 라이브러리 버젼 충돌이 발생했다.
원인은 hibernate 의 cglib 에서 사용하던 asm 라이브러리 버젼과 apache cxf 에서 사용하는 asm 버젼의 충돌이었다.

hibernate 3.3.2.GA 버젼에서의 pom.xml 을 보면

<!-- javassist is optional, but if defined it should be version 3.9.0 -->
<dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.9.0.GA</version>
</dependency>

<!-- cglib is optional, but if defined it should be version 2.2 -->
<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
<version>2.2</version>
 </dependency>

와 같이 정의되어있다. 
javaassist 는 옵션이지만 사용할거면 3.9.0 을 써라. cglib 또한 옵션이지만 사용한다면 2.2 를 써라.

이것의 해결방법은 hibernate 에서 사용하는  cglib 을 의존성이 없는 버젼. 즉 cglib-nodep 버젼을 사용하는 것이다.

<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib-nodep</artifactId>
    <version>2.2</version>
</dependency>

+ Recent posts