2012-05-06 4 views
17

왜이 오류가 발생하는지 알 수 없습니다. 중복 된 libs 등을 정리하려고했습니다.java.lang.IncompatibleClassChangeError : Mongo 클래스 구현

내가 뭘하려고 할 때 오류가 발생합니다 :

mongo = new Mongo(host, port); 

재미있는 것은 내가 IDE (인 IntelliJ)에서 만든 모든 단위 테스트를 실행할 수 있다는 것입니다,하지만 난 때 톰캣 I를 통해 실행 이 얻을 : 톰캣 7.0 내가 JDK 7을 사용하고

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com. 
    sfatandrei.db.MongoManager]: Constructor threw exception; nested exception is java.lang.IncompatibleCla 
    ssChangeError: Implementing class 
     at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162) 
     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInst 
    antiationStrategy.java:110) 
     at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(Constructo 
    rResolver.java:280) 
     ... 82 more 
    Caused by: java.lang.IncompatibleClassChangeError: Implementing class 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889) 
     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889) 
     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
     at com.mongodb.MongoOptions.reset(MongoOptions.java:47) 
     at com.mongodb.MongoOptions.<init>(MongoOptions.java:29) 
     at com.mongodb.Mongo.<init>(Mongo.java:148) 
     at com.mongodb.Mongo.<init>(Mongo.java:137) 
     at com.sfatandrei.db.MongoManager.<init>(MongoManager.java:28) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl. 
    java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 
     at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) 
     ... 84 more 

mvn dependency:tree -Dverbose

[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ mongodb-performance-test --- 
[INFO] com.sfatandrei:mongodb-performance-test:war:1.0 
[INFO] +- junit:junit:jar:4.8.2:test 
[INFO] +- org.springframework:spring-core:jar:3.1.1.RELEASE:compile 
[INFO] | +- org.springframework:spring-asm:jar:3.1.1.RELEASE:compile 
[INFO] | \- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for duplicate) 
[INFO] +- org.springframework:spring-beans:jar:3.1.1.RELEASE:compile 
[INFO] | \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] +- org.springframework:spring-context:jar:3.1.1.RELEASE:compile 
[INFO] | +- org.springframework:spring-aop:jar:3.1.1.RELEASE:compile 
[INFO] | | +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate) 
[INFO] | | +- (org.springframework:spring-asm:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | | \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- org.springframework:spring-expression:jar:3.1.1.RELEASE:compile 
[INFO] | | \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | \- (org.springframework:spring-asm:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] +- org.springframework:spring-jdbc:jar:3.1.1.RELEASE:compile 
[INFO] | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | \- org.springframework:spring-tx:jar:3.1.1.RELEASE:compile 
[INFO] |  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate) 
[INFO] |  +- (org.springframework:spring-aop:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] |  +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] |  +- (org.springframework:spring-context:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] |  \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] +- org.springframework:spring-web:jar:3.1.1.RELEASE:compile 
[INFO] | +- aopalliance:aopalliance:jar:1.0:compile 
[INFO] | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-context:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] +- org.springframework:spring-webmvc:jar:3.1.1.RELEASE:compile 
[INFO] | +- (org.springframework:spring-asm:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-context:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- org.springframework:spring-context-support:jar:3.1.1.RELEASE:compile 
[INFO] | | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | | +- (org.springframework:spring-context:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | | \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-expression:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | \- (org.springframework:spring-web:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] +- org.springframework.data:spring-data-mongodb:jar:1.0.0.RELEASE:compile 
[INFO] | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- (org.springframework:spring-expression:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | +- org.springframework.data:spring-data-commons-core:jar:1.2.0.RELEASE:compile 
[INFO] | | +- (org.springframework:spring-beans:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | | \- (org.springframework:spring-tx:jar:3.1.1.RELEASE:compile - omitted for duplicate) 
[INFO] | \- org.mongodb:mongo-java-driver:jar:2.7.1:compile 
[INFO] +- log4j:log4j:jar:1.2.16:compile 
[INFO] +- org.springframework:spring-test:jar:3.1.1.RELEASE:compile 
[INFO] +- commons-logging:commons-logging:jar:1.1.1:compile 
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided 
[INFO] +- org.mongodb:bson:jar:2.3:compile 
[INFO] \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.6:compile 
[INFO] \- org.codehaus.jackson:jackson-core-asl:jar:1.9.6:compile 

을. 27, maven 3.0.3.

+1

일반적으로이 오류는 한 세트의 JAR 파일로 컴파일하고 다른 세트로 실행 중일 때 발생합니다. 그것은 여러분의 클래스이거나 여러분이 사용하는 JAR 중 하나에있는 클래스 중 하나 일 수 있습니다. 불행하게도 어떤 클래스에서 오류가 발생했는지는 알 수 없습니다. –

+0

@HotLicks, 실제로 어떤 클래스가 에러를 발생 시켰는가?'com.mongodpt.MongoOptions.reset (MongoOptions.java:47) ' – sfat

+1

아니요, 이것이 오류가 발생한 곳입니다. 하지만로드 된 클래스에서 오류가 발생했습니다. 이 시점에서 코드를 검사 할 수 있다면 어떤 클래스가로드되고 있는지 해독 할 수 있습니다. –

답변

19

바이트 코드 수준의 오류처럼 보입니다. 어쩌면 당신은 tomcat 서버에 동일한 라이브러리의 두 가지 버전이있을 수 있습니다.

참조 : What causes java.lang.IncompatibleClassChangeError?

+2

'mongo-java-driver'에는 org.bson을 사용하는 클래스가 있고'bson' 의존성을 추가 한 것으로 보입니다. – sfat

1

은 JBoss에서이 문제를 얻을 경우,이 때문에 보스가 기본값으로 RESTEasy가 REST 구현을 번들 있다는 사실을 가장 가능성이 높습니다. 자체 REST 라이브러리를 EAR/WAR 파일에 패키지하는 경우 배치 된 라이브러리가 작동하도록 기본 RESTeasy를 비활성화해야합니다.

관련 문제