Я использую все последние версии (исправляйте другие проблемы)
mongobee 0.13
fongo 2.2.0-RC3-SNAPSHOT
mongodb-driver 3.8.2
Когда я запускаю свое приложение, у меня появляется эта ошибка:
org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'mongobeeStandalone', определенного в ресурсе пути к классу [com / myproject / company / configuration / MongoConfiguration.class]: сбой вызова метода init;вложенным исключением является java.lang.AbstractMethodError: com.mongodb.client.internal.FongoOperationExecutor.execute (Lcom / mongodb / operation / ReadOperation; Lcom / mongodb / ReadPreference; Lcom / mongodb / ReadConcern;) Ljava / lang /;... Вызывается: java.lang.AbstractMethodError: com.mongodb.client.internal.FongoOperationExecutor.execute (Lcom / mongodb / operation / ReadOperation; Lcom / mongodb / ReadPreference; Lcom / mongodb / ReadConcern;) Ljava / lang Object;
Мой класс:
@Bean
public Mongobee mongobeeStandalone(final MongoTemplate mongoTemplate, final MongoClient mongoClient) {
final Mongobee runner = new Mongobee(mongoClient);
runner.setChangeLogsScanPackage(Changelog1.class.getPackage().getName()); // package to scan for changesets
runner.setDbName(mongoTemplate.getDb().getName());
return runner;
}
@Bean
public MongoClient mongoClient(final MongoDbFactory mongoDbFactory) {
final Mongo mongo = mongoDbFactory.getLegacyDb().getMongo();
if (!MongoClient.class.isInstance(mongo)) {
throw new UnsupportedOperationException("Must be a MongoClient");
}
return MongoClient.class.cast(mongo);
}
РЕДАКТИРОВАТЬ
Моя тестовая конфигурация:
@Configuration
public class FoncgoConfiguration extends AbstractMongoConfiguration {
@Bean
public Fongo fongo() {
return new Fongo("mongo-test");
}
@Override
@Bean
public MongoTemplate mongoTemplate() throws Exception {
final SimpleMongoDbFactory simpleMongoDbFactory = new SimpleMongoDbFactory(mongoClient(), getDatabaseName());
final MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory, mappingMongoConverter());
return mongoTemplate;
}
@Override
@Bean
public MongoClient mongoClient() {
return MockMongoClient.create(fongo());
}
}