27

MongoDB 用の Java アプリを実行すると、次の例外が発生します。

[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017 while accessing MongoDB with Java

コール スタックは次のとおりです。

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127) ~[mongodb-driver-core-3.0.4.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_45]
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_45]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_45]
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_45]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_45]
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_45]
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) ~[mongodb-driver-core-3.0.4.jar:na]
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.0.4.jar:na]
    ... 3 common frames omitted

これらの名前はどちらも私のアプリケーションに属していません。また、ローカルホストにMONGODBサーバーがありません。リモートホストを使用していて、後で設定しています。Mongo に関する私の発言の前に例外が発生します。

アップデート

これはおそらく、Spring提供された Bean にアクセスするためのものMongoです。それらを無効にする方法は?

私の構成には、次の依存関係が含まれています。

dependencies {
    compile('javax.media:jai_core:1.1.3')
    //compile('jai_core:1.1.3')

//  compile('org.springframework.boot:spring-boot-starter-data-mongodb')
    compile('org.mongodb:mongodb-driver:3.0.4')
    compile('org.mongodb:bson:3.0.4')

    compile('org.geotools:gt-api:14.2')
    compile('org.geotools:gt-shapefile:14.2')
    compile('org.geotools:gt-geometry:14.2')
    compile('org.geotools:gt-referencing:14.2')
    compile('org.geotools:gt-geojson:14.2')
    compile('org.geotools:gt-mongodb:14.2')

    compile('org.springframework.boot:spring-boot-starter-web')
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testCompile('org.springframework.boot:spring-boot-starter-test') 
}

つまり、私は削除org.springframework.boot:spring-boot-starter-data-mongodbし、自分自身を使用することを考えていましたMongo...

更新2

関連する質問を見つけました: spring-boot で spring-data-mongodb 自動構成を無効にする方法

4

9 に答える 9

57

メインのアノテーション付きクラスに除外アノテーションを追加する予定でしたが、

つまり、代わりに

@SpringBootApplication

私が持っている必要があります

@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
于 2016-02-15T18:05:42.797 に答える
0

MongoDB を spring-boot に接続しようとすると、同じ例外が発生しました。私の場合、@Configuration作成した MongoDB Configuration クラスにアノテーションを追加するのを忘れていました。

これを追加した後、それは私のために働いた。

于 2021-04-09T15:54:45.720 に答える
0

私の場合、開発環境を承認しなかったことが間違いでした。そのため、ルールを追加して、任意の IP からの接続を許可しました (prod env には適していません) 0.0.0.0/0。このルールはNetwork Access、アトラス ダッシュボードのセクションから追加します。

于 2021-12-24T19:09:53.503 に答える
-3

サーバーが稼働していないようです。また、実行中の場合は、別のポートで実行しています。

于 2016-02-15T17:36:09.950 に答える