[英]MongoSocketReadException: Prematurely reached end of stream (Java to Mongo using ssl)
I am getting the mentioned error when trying to connect my java app with the mongo cluster with ssl true.尝试使用 ssl true 将我的 java 应用程序与 mongo 集群连接时,出现上述错误。 Below are the steps which I am following :
以下是我正在遵循的步骤:
Note: The used path are the dummy data I used the actual or correct path for each.
注意:使用的路径是我为每个路径使用的实际或正确路径的虚拟数据。
@Bean
public MongoClient mongoClient() {
System.setProperty ("javax.net.ssl.trustStore","..\\..\\my-keystore");
System.setProperty ("javax.net.ssl.trustStorePassword","test@123");
System.setProperty ("javax.net.ssl.keyStore","..\\..\\PEMKeyfile.pkcs12");
System.setProperty ("javax.net.ssl.keyStorePassword","test@123");
MongoClientOptions mongoClientOptions = MongoClientOptions.builder().sslEnabled(true).build();
MongoCredential credential = MongoCredential.createCredential(username, db, pwd.toCharArray());
return new MongoClient(return Arrays.asList(new ServerAddress("host-1", 123),
new ServerAddress("host-2", 123),
new ServerAddress("host-3", 123));, credential, mongoClientOptions);
}
Error: same error coming for all three hosts错误:所有三个主机都出现相同的错误
INFO 4088 --- [xyz:27051] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server host-1:123
com.mongodb.MongoSocketReadException: Prematurely reached end of stream
at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:112) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:570) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:441) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:295) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:105) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:62) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongo-java-driver-3.10.2.jar:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongo-java-driver-3.10.2.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_221]
我错误地从实际生成的 pem 文件中删除了一个证书,当我尝试通过终端连接时,它能够与单个证书连接,但是当在代码中尝试相同的事情时,我不知道为什么以及如何更改大自然突然停止工作,所以不容易检测哪个部分有问题,但是在使用两个它工作的证书撤消我生成的 pem 文件之后是的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.