【问题标题】:Error in mongodb: java.lang.NoSuchFieldError: INSTANCEmongodb 中的错误:java.lang.NoSuchFieldError: INSTANCE
【发布时间】:2017-05-19 01:40:57
【问题描述】:

我使用maven管理jar,我对mongodb的依赖如下:

<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.4.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb -->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.9.5.RELEASE</version>
    </dependency>

但是当我启动springmvc程序时,出现错误:

Caused by: java.lang.NoSuchFieldError: INSTANCE
at org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper.<init>(DefaultMongoTypeMapper.java:65)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.<init>(MappingMongoConverter.java:108)
at org.springframework.data.mongodb.config.AbstractMongoConfiguration.mappingMongoConverter(AbstractMongoConfiguration.java:192)
at com.aixueniao.server.configuration.MongoConfig$$EnhancerBySpringCGLIB$$ee562bf3.CGLIB$mappingMongoConverter$5(<generated>)
at com.aixueniao.server.configuration.MongoConfig$$EnhancerBySpringCGLIB$$ee562bf3$$FastClassBySpringCGLIB$$973f1472.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
at com.aixueniao.server.configuration.MongoConfig$$EnhancerBySpringCGLIB$$ee562bf3.mappingMongoConverter(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
... 85 more

谁能告诉我它有什么问题?也许依赖项的版本存在错误,但我该如何解决呢?提前致谢。

【问题讨论】:

  • 是的,好像是jar冲突,也许你可以清理降级版本检查一下。
  • 摆脱mongo java驱动依赖。 spring mongo db 依赖对 mongo java 驱动有传递依赖。当前的spring mongo发布版本只能支持2.x mongo驱动版本。如果您需要 3.x mongo 驱动程序支持,则需要使用 spring mongo 候选版本之一。
  • 这是一个库版本冲突错误。将您的 spring-data-mongodb 降级到 1.7.2.RELEASE.it 会解决的。否则尝试应用排除

标签: java mongodb hibernate maven spring-mvc


【解决方案1】:

这是一个多库版本冲突错误。简单的方法是将您的 spring-data-mongodb 版本 1.9.5.RELEASE 降级为 1.7.2.RELEASE

 <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.7.2.RELEASE</version>
  </dependency>

否则尝试查找冲突库并在 spring-data-mongodb 依赖项中应用排除

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 2021-10-09
    • 2012-01-20
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多