2015-12-22 14 views
9

Sto utilizzando Spring Rest e Mongo in Maven per creare un servizio Web che si connette a un server. Il problema è che non ho scritto alcun codice per Mongo e sta provando a collegarmi a localhost gettandomi una MongoSocketOpenException. L'unico codice che ho scritto è un codice a due riga che inizia la primavera dal main.This è lo stacktrace:Mongo tenta di connettersi automaticamente alla porta 27017 (localhost)

2015-12-22 12:46:43.193 INFO 5720 --- [   main] fhirepsos.ws.Server      : Starting Server on HarisPC with PID 5720 (C:\Users\Haris\workspace\FHIRtoepSOSConversion\target\classes started by Haris in C:\Users\Haris\workspace\FHIRtoepSOSConversion) 
2015-12-22 12:46:43.197 INFO 5720 --- [   main] fhirepsos.ws.Server      : No profiles are active 
2015-12-22 12:46:43.260 INFO 5720 --- [   main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot[email protected]31f924f5: startup date [Tue Dec 22 12:46:43 EET 2015]; root of context hierarchy 
2015-12-22 12:46:44.007 INFO 5720 --- [   main] o.s.b.f.s.DefaultListableBeanFactory  : Overriding bean definition for bean 'beanNameViewResolver' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]] 
2015-12-22 12:46:44.735 INFO 5720 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 9001 (http) 
2015-12-22 12:46:44.750 INFO 5720 --- [   main] o.apache.catalina.core.StandardService : Starting service Tomcat 
2015-12-22 12:46:44.751 INFO 5720 --- [   main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.28 
2015-12-22 12:46:44.865 INFO 5720 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext 
2015-12-22 12:46:44.866 INFO 5720 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 1610 ms 
2015-12-22 12:46:45.161 INFO 5720 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/] 
2015-12-22 12:46:45.166 INFO 5720 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 
2015-12-22 12:46:45.166 INFO 5720 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 
2015-12-22 12:46:45.167 INFO 5720 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 
2015-12-22 12:46:45.167 INFO 5720 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 
2015-12-22 12:46:45.393 INFO 5720 --- [   main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot[email protected]31f924f5: startup date [Tue Dec 22 12:46:43 EET 2015]; root of context hierarchy 
2015-12-22 12:46:45.467 INFO 5720 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 
2015-12-22 12:46:45.468 INFO 5720 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest) 
2015-12-22 12:46:45.499 INFO 5720 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-12-22 12:46:45.499 INFO 5720 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-12-22 12:46:45.539 INFO 5720 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-12-22 12:46:45.726 INFO 5720 --- [   main] org.mongodb.driver.cluster    : Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 
2015-12-22 12:46:45.796 INFO 5720 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
2015-12-22 12:46:45.874 INFO 5720 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9001 (http) 
2015-12-22 12:46:45.878 INFO 5720 --- [   main] fhirepsos.ws.Server      : Started Server in 3.033 seconds (JVM running for 3.383) 
2015-12-22 12:46:46.764 INFO 5720 --- [localhost:27017] org.mongodb.driver.cluster    : Exception in monitor thread while connecting to server localhost:27017 

com.mongodb.MongoSocketOpenException: Exception opening socket 
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongo-java-driver-3.2.0.jar:na] 
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) ~[mongo-java-driver-3.2.0.jar:na] 
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128) ~[mongo-java-driver-3.2.0.jar:na] 
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_65] 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_65] 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[na:1.8.0_65] 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_65] 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_65] 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_65] 
    at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_65] 
    at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_65] 
    at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_65] 
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) ~[mongo-java-driver-3.2.0.jar:na] 
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongo-java-driver-3.2.0.jar:na] 
    ... 3 common frames omitted 

Questo è il mio pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>fhirepsos.ws</groupId> 
    <artifactId>FHIRtoepSOSConversion</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>FHIR to epSOS Conversion</name> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.0.RELEASE</version> 
    </parent> 
    <dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>3.2.0</version> 
    </dependency>  
    <dependency> 
     <groupId>ca.uhn.hapi.fhir</groupId> 
     <artifactId>hapi-fhir-base</artifactId> 
     <version>1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>ca.uhn.hapi.fhir</groupId> 
     <artifactId>hapi-fhir-structures-dstu2</artifactId> 
     <version>1.3</version> 
    </dependency>   
    </dependencies> 
    <properties> 
     <java.version>1.8</java.version> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <repository> 
      <id>spring-releases</id> 
      <url>https://repo.spring.io/libs-release</url> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-releases</id> 
      <url>https://repo.spring.io/libs-release</url> 
     </pluginRepository> 
    </pluginRepositories> 
</project> 

Infine devo dire che, nonostante l'eccezione il programma funziona bene

Grazie in anticipo!

risposta

38

Spring Boot ha una funzionalità denominata "configurazione automatica". In questo caso, non appena viene rilevato il driver Mongo sul classpath, MongoAutoConfiguration viene attivato con i valori predefiniti, che puntano a localhost: 27017. Se non si desidera che il comportamento, è ora possibile configurare le proprietà sia per MongoDB (vedi http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-mongodb per chiavi di proprietà validi) o disabilitare il MongoAutoConfiguration:

@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) 
+0

La ringrazio molto per la risposta rapida !! Ha funzionato!! –

+2

@EnableAutoConfiguration (exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) se si utilizza l'annotazione EnableAutoConfiguration. – Manish

+0

Sto riscontrando lo stesso problema con il driver async di MongoDB. Escludendo le precedenti classi di configurazione automatica sembra non dare risultati. Hai idea di cosa sta succedendo? Ho anche aperto una domanda su questo problema, [Spring Boot Starter-Web prova a connettersi a Mongo all'avvio] (http://stackoverflow.com/questions/40745157/spring-boot-starter-web-tries-to-connect -to-mongo-at-startup) –

Problemi correlati