MongoDBのJava appを実行すると、次の例外が発生します。
[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
にアクセスするMongo
提供のBeanの一部です。それらを無効にする方法は?
私の設定には次の依存関係が含まれています:
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
を自分で使用することを考えていました...
UPDATE2
私は関連する質問を見つけました: spring-bootでspring-data-mongodb自動構成を無効にする方法
メインの注釈付きクラスに除外注釈を追加することでしたが、
つまり、代わりに
@SpringBootApplication
私が持っている必要があります
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
追加してみてください
spring.data.mongodb.Host=hostIpOnWhichMongoIsRunning
spring.data.mongodb.port=27017
application.properties
に挿入します。
Mongoがlocalhostで実行されていない場合は、これで問題が解決するはずです。
確かには言えない。それは、情報の質問としては十分ではありません。
私はそれを言うことができます:デフォルトでMongoドライバーはローカルホストに接続しようとします。おそらく、Mongoホスト/ポートを指定していません。
したがって、MongoDBのホスト/ポート/資格情報(ある場合)を構成する必要があります。
多分それはネットワーク関連の問題またはファイアウォールです(あなたのマシンから直接cliを使用してMongoDBに接続してみてください/ mongoドライバーのみを使用する基本的なプログラムを実行している場合でも)。
スタックトレースからは、Springの使用法が見当たらないので、確かに言うにはより多くの情報が必要です。
一般に、gradle dependencies
コマンドを使用して、Gradleの依存関係を分析できます( ここ を参照)。
サーバーが実行されていないようです。また、実行中の場合は、別のポートで実行しています。