运行MongoDB的Java应用程序时出现以下异常:
[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
提供的bean访问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
...
UPDATE2
我找到了相关问题:How to disable spring-data-mongodb autoconfiguration in spring-boot
答案 0 :(得分:26)
我是要在我的主要注释类中添加排除注释,
即。而不是
@SpringBootApplication
我应该
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})
答案 1 :(得分:2)
尝试添加
spring.data.mongodb.host = hostIpOnWhichMongoIsRunning spring.data.mongodb.port = 27017
进入application.properties。如果mongo没有在localhost上运行,这应该可以解决问题。
答案 2 :(得分:0)
您的服务器似乎没有运行。 此外,如果它正在运行,它在不同的端口上这样做。
答案 3 :(得分:0)
我不能肯定地说。这是一个不够充分的信息问题。
我可以这样说:Mongo驱动程序默认尝试连接到本地主机。 可能你没有指定Mongo主机/端口。
所以你必须配置MongoDB主机/端口/凭证(如果有的话)。
可能是与网络相关的问题或防火墙(尝试使用cli /甚至运行仅使用mongo驱动程序的基本程序直接从您的计算机连接到MongoDB。)
从堆栈跟踪中我看不到Spring的任何用法,因此需要更多信息来确定。
通常,您可以使用gradle dependencies
命令分析Gradle中的依赖项(请参阅here)。
答案 4 :(得分:0)
就我而言,我还没有在本地机器上安装 MongoDB。我安装了它,一切正常。
答案 5 :(得分:0)
在尝试使用 spring-boot 连接 MongoDB 时,我遇到了同样的异常。
就我而言,我忘记在我创建的 MongoDB 配置类中添加 @Configuration
注释。
添加后它对我有用。
答案 6 :(得分:0)
我改变了范围(之前是测试)
india|india|india|group|group|status
india|india|india|group|group|status
australia|australia|australia|group|group|status
america|america|america|group|group|status
singapore|singapore|singapore|group|group|status
india|india|india|group|group|status
america|america|america|group|group|status
答案 7 :(得分:0)
我的 IDEA 建议我这样做。
@SpringBootApplication(exclude = {MongoAutoConfiguration.class})
答案 8 :(得分:-1)
对于 springboot,您应该将以下配置添加到您的 application.property
int main()
{
char* str = "hello";
int l=1;
foo(str,&l);
return 0;
}