【问题标题】:Spring Boot with Morphia Configuration: BeanCreationException带有 Morphia 配置的 Spring Boot:BeanCreationException
【发布时间】:2018-09-27 09:38:53
【问题描述】:

我和我的项目团队使用 Morphia 创建了一个应用程序。现在我们想用 Spring 构建一个 Web 服务,它使用相同的 Entity-Classes 和 Wrappers。但似乎 Spring 试图从 morphia 库中实例化一个 Bean。

我的 pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.4.3</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb.morphia</groupId>
        <artifactId>morphia</artifactId>
        <version>1.3.2</version>
    </dependency>
</dependencies>

我的主要课程:

@SpringBootApplication
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

启动时抛出以下错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongo' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mongodb.MongoClient]: Factory method 'mongo' threw exception; nested exception is java.lang.IllegalArgumentException: clusterListener can not be null
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
    ... lines omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mongodb.MongoClient]: Factory method 'mongo' threw exception; nested exception is java.lang.IllegalArgumentException: clusterListener can not be null
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
... lines omitted

一旦我添加了morphia依赖项,就会在启动时引发错误。

我必须如何配置 Spring Boot 才能解决此问题?

提前谢谢你

【问题讨论】:

    标签: java spring mongodb spring-boot morphia


    【解决方案1】:

    似乎 Spring 尝试自动配置 MongoDb 驱动程序。我设法使用以下配置注释禁用自动配置:

    @Configuration
    @EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class})
    public class MainApplication {}
    

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 2011-03-01
      • 2017-08-04
      • 2014-07-30
      • 2013-12-20
      相关资源
      最近更新 更多