Исключение в потоке монитора при подключении к серверу localhost: 27017 при доступе к MongoDB с Java
у меня есть следующее исключение при запуске Java приложения для MongoDB:
[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 на локальном хосте. Я использую удаленный хост и установить его позже. Исключение происходит перед любым из моих заявлений, касающихся Монго.
обновление
это, вероятно, некоторые Spring
при условии, бобы доступа 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-data-mongodb в spring-boot
4 ответов
Я должен был добавить аннотацию исключения к моему основному аннотированному классу,
т. е. вместо
@SpringBootApplication
Я должен
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
Я не могу сказать точно. Своего рода недостаточно информационный вопрос.
Я могу сказать, что: драйвер mongo по умолчанию пытается подключиться к локальному хосту. Вероятно, вы не указали хост/порт mongo.
поэтому вам придется настроить хост/порт/учетные данные Mongo db (если они у вас есть).
возможно, его проблема с сетью или брандмауэр (попробуйте подключиться к Mongo db с Вашего компьютера напрямую с помощью cli / даже запустить базовую программу, которая использует только драйвер монго).
из stacktrace я не вижу никакого использования spring, поэтому требуется дополнительная информация, чтобы сказать наверняка.
В общем случае вы можете анализировать зависимости в gradle с помощью (см. здесь)
надеюсь, что это помогает
попробуйте добавить
весна.данные.в MongoDB.host=hostIpOnWhichMongoIsRunning весна.данные.в MongoDB.порт=27017
в приложения.свойства. если mongo не работает на localhost, это должно устранить проблему.