2016-12-09 2 views
0

С версией Spring - 3.0.5.RELEASE. Я обновляю Монго 2.11.0 на 3.2.0 и получение NoSuchMethodError: com.mongodb.DB.isAuthenticated() Zобновление mongo mongo 2.11.0 to 3.2.0 с spring-data-mongodb 1.0.0.M2 без поиска com.mongodb.DB.isAuthenticated() Z

  1. Я не могу изменить весеннюю версию
  2. Так что я не могу изменить весной -data-MongoDB версия

    private MongoTemplate getNewTemplate() { 
    
    
    MongoTemplate template = null; 
    try { 
    
    
        Mongo mongo = new Mongo(host, port); 
    
    
        List<Converter<?,?>> converters = new ArrayList<Converter<?,?>>(); 
        converters.add((Converter) new BigDecimalToDoubleConverter()); 
        converters.add((Converter) new DoubleToBigDecimalConverter()); 
    
        MongoMappingContext mappingContext = new MongoMappingContext(); 
        mappingContext.setApplicationEventPublisher(applicationContext); 
        MappingMongoConverter mmc = new MappingMongoConverter(mappingContext); 
    
        mmc.setConverters(converters); 
        mmc.setMongo(mongo); 
    
        mmc.setApplicationContext(applicationContext); 
    
        template = new MongoTemplate(mongo, dbName, "versionchangevalue", mmc); 
        template.setApplicationEventPublisher(applicationContext); 
        template.setMappingContext(mappingContext); 
        template.setWriteConcern(WriteConcern.ACKNOWLEDGED); 
    
        mmc.afterPropertiesSet(); 
    
        if ((username != null) && !(username.isEmpty())) { 
         template.setUsername(username); 
         template.setPassword(password); 
        } 
    
    
    
    } catch (Exception e) { 
        logger.error("Fatal error connecting to mongo db. Host not found for hostname:port=" + host + ":" + port, e); 
    } 
    
    
    return template; 
    } 
    } 
    

Рабочая версия

{ 
    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>2.11.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-mongodb</artifactId> 
     <version>1.0.0.M2</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jcl-over-slf4j</artifactId> 
      </exclusion> 
      </exclusions> 
    </dependency> 
} 

Давать Ошибка

NoSuchMethodError: com.mongodb.DB.isAuthenticated()Z

при переходе на

{ 

    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>3.2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-mongodb</artifactId> 
     <version>1.0.0.M2</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jcl-over-slf4j</artifactId> 
      </exclusion> 
      </exclusions> 
    </dependency> 
} 
+0

Можете ли вы объяснить, каковы причины этого обновления? Его основная версия меняется. Это не будет действительно полезно, если вы не сможете обмануть версию версии mongo с весной, которая поставляется с этой версией драйвера mongo. – Veeram

+0

Да, я знаю, что идеальным было бы изменить весеннюю версию. Но архитектурное решение было принято, что весенняя версия не будет изменена в этом выпуске. Мы обновляем только версию mongo. Я попытался с помощью 2.14.0-rc0 mongo-java-драйвера, но тогда у меня есть другая проблема: - org.springframework.data.document.UncategorizedDocumentStoreException: «errmsg»: «не разрешено на« UAT »для выполнения команды –

ответ

0

Поддержка для добавленного с RC1 Спринг данных MongoDB 1.7 (Fowler) драйвер 3.x линии MongoDB Java. Pls. см. DATAMONGO-1158 для деталей.

Использование вехи с 2011 года не позволит использовать более поздний драйвер Java MongoDB.

+0

Я согласен с тем, что мы скоро изменит его. Приоритетом было внесение минимальных изменений, чтобы трюк работал на меня. Спасибо за ваши комментарии. –

0

Это работает для меня, как Монго драйвер Java 2.14. * Поддерживает MongoDB 3,2

 <!-- mongodb java driver --> 
    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>2.14.3</version> 
    </dependency> 

    <!-- Spring data mongodb --> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-mongodb</artifactId> 
     <version>1.0.0.M2</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jcl-over-slf4j</artifactId> 
      </exclusion> 
      </exclusions> 
    </dependency>