jHipster蒙古包迁移

问题描述

我正在从mongobee迁移到mongock,以便我们可以使用Atlas。我已经按照建议的更改进行了提交,这些更改已合并到master中并修改了CloudDatabaseConfiguration,DatabaseConfiguration和InitialSetupMigration类。我还更新了pom以导入mongock 4.1.17依赖项。

运行该应用程序似乎没有问题。我已经测试了更改日志,并且一切正常。但是,当我运行测试时,我收到一条错误消息,指出它找不到类org / springframework / data / mongodb / MongoDatabaseFactory。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongockInitializingBeanRunner' defined in class path resource [com/ioi/helpdesk/gateway/config/DatabaseConfiguration.class]: Invocation of init method Failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/mongodb/MongoDatabaseFactory
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.initializeBean(AbstractAutowireCapablebeanfactory.java:1796)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:595)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:517)
    at org.springframework.beans.factory.support.Abstractbeanfactory.lambda$doGetBean$0(Abstractbeanfactory.java:323)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
    at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:321)
    at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:202)


    <dependency>
        <groupId>com.github.cloudyrock.mongock</groupId>
        <artifactId>mongock-spring-v5</artifactId>
        <version>4.1.17</version>
    </dependency>
    <dependency>
        <groupId>com.github.cloudyrock.mongock</groupId>
        <artifactId>mongodb-springdata-v3-driver</artifactId>
        <version>4.1.17</version>
    </dependency>

I have not changed the starter data dependency

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



 @Configuration
    @EnableMongoRepositories("com.ioi.helpdesk.gateway.repository")
    @Profile("!" + JHipsterConstants.SPRING_PROFILE_CLOUD)
    @Import(value = MongoAutoConfiguration.class)
    @EnableMongoAuditing(auditorAwareRef = "springSecurityAuditorAware")
    public class DatabaseConfiguration {
    
        private final Logger log = LoggerFactory.getLogger(DatabaseConfiguration.class);
    
        @Bean
        public ValidatingMongoEventListener validatingMongoEventListener() {
            return new ValidatingMongoEventListener(validator());
        }
    
        @Bean
        public LocalValidatorfactorybean validator() {
            return new LocalValidatorfactorybean();
        }
    
        @Bean
        public MongoCustomConversions customConversions() {
            List<Converter<?,?>> converters = new ArrayList<>();
            converters.add(DatetozoneddatetimeConverter.INSTANCE);
            converters.add(zoneddatetimeToDateConverter.INSTANCE);
            return new MongoCustomConversions(converters);
        }
    
        @Bean
        public MongockSpring5.MongockInitializingBeanRunner mongockInitializingBeanRunner(ApplicationContext springContext,MongoTemplate mongoTemplate,@Value("${mongock.lockAcquiredForMinutes:5}") long lockAcquiredForMinutes,@Value("${mongock.maxWaitingForLockMinutes:3}") long maxWaitingForLockMinutes,@Value("${mongock.maxTries:3}") int maxTries) {
    
            try {
                log.info("INITIALIZING MONGOCK!");
                SpringDataMongo3Driver driver = SpringDataMongo3Driver.withLockSetting(mongoTemplate,lockAcquiredForMinutes,maxWaitingForLockMinutes,maxTries);
                MongockSpring5.MongockInitializingBeanRunner runner = MongockSpring5.builder()
                    .setDriver(driver)
                    .addChangeLogsScanPackage("com.ioi.helpdesk.gateway.config.dbmigrations")
                    .setSpringContext(springContext)
                    .buildInitializingBeanRunner();
                log.info("MONGOCK INITIALIZED!");
                return runner;
            } catch(Exception e) {
                log.info("Error during Mongock initalization - " + ExceptionUtils.getStackTrace(e));
            }
            return null;
        }
    
    }

我是缺少测试依赖项还是包含错误的依赖项?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...