2

スプリング ブート アプリをクラウド ファウンドリにデプロイしようとしています。ただし、以下のエラーが表示されます。

2016-02-19T16:54:29.57+0000 [App/0]      ERR Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Usage of 'UserCredentials' with 'MongoClient' is no longer supported. Please use 'MongoCredential' for 'MongoClient' or just 'Mongo'.
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.springframework.data.mongodb.core.SimpleMongoDbFactory.<init>(SimpleMongoDbFactory.java:137)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.springframework.data.mongodb.core.SimpleMongoDbFactory.<init>(SimpleMongoDbFactory.java:78)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.cloudfoundry.reconfiguration.org.springframework.cloud.service.document.MongoDbFactoryCreator.create(MongoDbFactoryCreator.java:46)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.cloudfoundry.reconfiguration.org.springframework.cloud.service.document.MongoDbFactoryCreator.create(MongoDbFactoryCreator.java:35)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.cloudfoundry.reconfiguration.org.springframework.cloud.Cloud.getServiceConnector(Cloud.java:257)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.cloudfoundry.reconfiguration.org.springframework.cloud.Cloud.getSingletonServiceConnector(Cloud.java:167)
2016-02-19T16:54:29.57+0000 [App/0]      ERR    at org.cloudfoundry.reconfiguration.spring.AbstractCloudServiceBeanFactoryPostProcessor.reconfigureBean(AbstractCloudServiceBeanFactoryPostProcessor.java:119)

Spring Boot は、バインドされた Mongo サービスと、必要なすべてのユーザー資格情報と URI の詳細を自動的に検出することを理解していました。つまり、これらの変数を明示的に宣言する必要はありません。

このエラーが発生する理由と解決方法を知っている人はいますか?

これが私のJavaコードスニペットです:

@Autowired
    public MongoRepository(MongoClient mongo) {
        this.mongo = mongo;
    }


public long insert(Document document){

    MongoDatabase db = mongo.getDatabase("test");
    MongoCollection<Document> coll = db.getCollection("document");
    coll.insertOne(document);
}

Mongo3.0 Java ドライバーを使用しています。

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.0.0</version><!--$NO-MVN-MAN-VER$-->
</dependency>
4

2 に答える 2

1

Cloud Foundry Java ビルドパックの自動構成に依存して MongoDB 接続を構成しています。Java ビルドパックは、Spring Cloud Connectors、Spring Data MongoDB、および MongDB クライアント ライブラリに依存して、必要な接続 Bean を作成します。MongoDB クライアントは、 Spring Data MongDBおよびSpring Cloud Connectorも変更する必要がある少し前にいくつかの変更を行いました。使用している Java Buildpack は、これらのライブラリの古いバージョンに依存しているようです。

いくつかのオプションがあります。

Java ビルドパックの新しいバージョンを使用してアプリをプッシュできます。バージョン3.2以降の JBP には、ニーズに合った正しいライブラリがあるようです。

または、アプリケーションに Spring Cloud Connector バージョン 1.2.0 以降を明示的に含めることもできます。これにより、Java ビルドパックの自動構成が効果的に無効になります。このアプローチの詳細については、コネクタのドキュメントを参照してください。

于 2016-02-19T20:28:40.823 に答える