2015-12-22 4 views
9

MavenでSpring RestとMongoを使用してサーバーに接続するWebサービスを作成しています。問題は、私がMongoのコードを書いていないことと、MongoSocketOpenExceptionを投げているlocalhostに接続しようとしていることです。私が書いたコードのみがmain.Thisから春を開始し2つのラインコードでスタックトレースされています。これは最後に、私はもかかわらず、と述べている必要はありMongoが自動的にポート27017(localhost)に接続しようとしています

<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> 

私のpom.xmlである

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 

例外はプログラムが正常に動作します

ありがとうございます!

答えて

38

スプリングブートには「自動設定」という機能があります。この場合、クラスパス上でMongoドライバが検出されるとすぐに、MongoAutoConfigurationがデフォルト値(localhost:27017を指す)でアクティブになります。あなたがその振る舞いをしたくない場合、あなたは今のいずれかのMongoDBのプロパティを設定する(有効なプロパティキーのhttp://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-mongodbを参照)またはMongoAutoConfigurationを無効にすることができます

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

は、あなたの迅速な答えをありがとうございました!!出来た!! –

+2

EnableAutoConfigurationアノテーションを使用する場合は@EnableAutoConfiguration(exclude = { MongoAutoConfiguration.class、MongoDataAutoConfiguration.class})。 – Manish

+0

MongoDBのasyncドライバで同じ問題が発生しています。上記の自動構成クラスを除外すると、結果は得られないようです。あなたは何が起こっているのか考えてみませんか?私はこの問題についての質問も開きました。[Spring Boot Starter-Webは起動時にMongoに接続しようとしています](http://stackoverflow.com/questions/40745157/spring-boot-starter-web-tries-to-connect -to-mongo-at-startup) –

関連する問題