我使用所有持久版本(修复其他问题)
蒙古蜜蜂0.13 fongo 2.2.0-RC3-快照 mongodb-驱动程序3.8.2
当我运行我的应用程序时,我有以下错误:
org.springframework.beans.factory.BeanCreationException:错误创建名为“mongobeeStandalone”的bean类路径资源init方法的com/myproject/company/configuration/MongoConfiguration.class:调用失败;嵌套异常是java.lang.AbstractMethodError: com.mongodb.client.internal.FongoOperationExecutor.execute(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;)Ljava/lang/Object;.原因: com.mongodb.client.internal.FongoOperationExecutor.execute(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;)Ljava/lang/Object;:java.lang.AbstractMethodError
我的班级:
@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());
}
}发布于 2018-10-18 09:47:33
您应该使用Spring,它将创建并注入com.mongodb.MongoClient bean。因此,删除mongoClient()方法并添加Mongodb数据依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>Spring还提供了一个MongoTemplate bean并自动配置它。为了进行测试,您应该使用嵌入式Mongo和@DataMongoTest注释,因为它配置了一个MongoTemplate。有关测试示例,请参见这里。
https://stackoverflow.com/questions/52870016
复制相似问题