J'ai l'exception suivante lors de l'exécution de l'application Java pour MongoDB:
[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017 while accessing MongoDB with Java
La pile d'appels est la suivante:
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
Aucun de ces noms n'appartient à ma candidature. De plus, je n'ai pas de serveur MONGODB sur l'hôte local. J'utilise l'hôte distant et le configure plus tard. Une exception se produit avant l'une de mes déclarations concernant Mongo.
[~ # ~] mise à jour [~ # ~]
Il s'agit probablement de Spring
fournis par des beans accédant à Mongo
. Comment les désactiver?
Ma configuration contient les dépendances suivantes:
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')
}
c'est-à-dire que j'ai supprimé org.springframework.boot:spring-boot-starter-data-mongodb
et je pensais utiliser Mongo
moi-même ...
MISE À JOUR2
J'ai trouvé la question connexe: Comment désactiver l'autoconfiguration de spring-data-mongodb dans spring-boot
Je devais ajouter une annotation d'exclusion à ma classe annotée principale,
c'est-à-dire au lieu de
@SpringBootApplication
J'aurais dû
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
Essayez d'ajouter
spring.data.mongodb.Host=hostIpOnWhichMongoIsRunning
spring.data.mongodb.port=27017
en application.properties
.
Si Mongo ne fonctionne pas sur localhost, cela devrait résoudre le problème.
Je ne peux pas dire avec certitude. C'est en quelque sorte une question d'information insuffisante.
Je peux dire que: le pilote Mongo essaie par défaut de se connecter à l'hôte local. Vous n'avez probablement pas spécifié l'hôte/port Mongo.
Vous devrez donc configurer l'hôte/le port/les informations d'identification MongoDB (si vous en avez).
Peut-être que c'est un problème lié au réseau ou un pare-feu (essayez de vous connecter à MongoDB à partir de votre machine directement avec cli/même en exécutant un programme de base qui utilise uniquement le pilote mongo).
De la stacktrace, je ne vois aucune utilisation de Spring, donc plus d'informations sont nécessaires pour dire avec certitude.
En général, vous pouvez analyser les dépendances dans Gradle en utilisant gradle dependencies
commande (voir ici ).
Il semble que votre serveur ne fonctionne pas. De plus, s'il fonctionne, il le fait sur un autre port.