简体   繁体   English

MongoSocketReadException:过早到达流末尾(使用 ssl 从 Java 到 Mongo)

[英]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.注意:使用的路径是我为每个路径使用的实际或正确路径的虚拟数据。

  1. Created my own Java Key Store.创建了我自己的 Java 密钥库。
  2. Import CAFile in keystore using below cmd: "%JAVA_HOME%"\\bin\\keytool -import -trustcacerts -file "..\\..CAFile.pem" -keystore my-keystore -storepass test@123使用以下 cmd 在密钥库中导入 CAFile: "%JAVA_HOME%"\\bin\\keytool -import -trustcacerts -file "..\\..CAFile.pem" -keystore my-keystore -storepass test@123
  3. Now convert my PEMKeyFile.pem into .pkcs12 formate openssl pkcs12 -export -in "..\\..PEMKeyfile.pem" -out ..\\..PEMKeyfile.pkcs12现在将我的 PEMKeyFile.pem 转换为 .pkcs12 格式 openssl pkcs12 -export -in "..\\..PEMKeyfile.pem" -out ..\\..PEMKeyfile.pkcs12
  4. Java code:爪哇代码:
@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.

相关问题 Mongo客户端尝试关闭不存在/创建的连接,并因MongoSocketReadException失败:过早到达流的末尾 - Mongo client trying to close connection that didn't exist/create and fails with MongoSocketReadException: Prematurely reached end of stream 如何修复 com.mongo.MongoSocketReadException 并在尝试插入文档时出现消息“过早到达 Stream 的末尾”? - How do I fix a com.mongo.MongoSocketReadException, with the message "Prematurely reached the end of Stream" on attempting to insert a document? 将Java应用程序连接到MongoDB-com.mongodb.MongoSocketReadException:已提前到达流的末尾 - Connect Java- Application to MongoDB - com.mongodb.MongoSocketReadException: Prematurely reached end of stream mongoDB和Spark:“ com.mongodb.MongoSocketReadException:过早到达流的末尾” - mongoDB & Spark: “com.mongodb.MongoSocketReadException: Prematurely reached end of stream” MongoSocketReadException:过早到达 stream 的末尾(一段时间不活动后) - MongoSocketReadException: Prematurely reached end of stream (after a period of inactivity) com.mongodb.MongoSocketReadException:过早到达流的结尾 - com.mongodb.MongoSocketReadException: Prematurely reached end of stream 获取com.mongodb.MongoSocketReadException:过早地到达流MongoDB的末尾 - Getting com.mongodb.MongoSocketReadException: Prematurely reached end of stream- MongoDB MongoSocketReadException:在 Spring 引导连接 MongoDB Atlas 时,过早到达 stream 的末尾 - MongoSocketReadException :Prematurely reached end of stream ,while connecting MongoDB Atlas by Spring Boot MongoClientURI 连接字符串抛出错误“com.mongodb.MongoSocketReadException:过早到达流的末尾” - MongoClientURI connection string throwing error “com.mongodb.MongoSocketReadException: Prematurely reached end of stream” 如何避免异常使用 mongoDB Java 驱动程序 3.4+ 或 3.6+ 过早到达 stream 的结尾? (插入时) - How to avoid an exception Prematurely reached end of stream using mongoDB Java driver 3.4+ or 3.6+? (during insertion)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM