java - 即使我可以从命令行连接,也无法从 Gradle 连接到远程 MongoDB
问题描述
我有一个需要连接的远程 MongoDB。我拥有所有凭据,但是当尝试从 gradle 连接时this.mongoClient = MongoClients.create(dbConnectionString);
,出现以下错误:
java.io.UncheckedIOException: java.net.SocketException: Network is unreachable
at java.base/sun.nio.ch.DatagramSocketAdaptor.disconnect(DatagramSocketAdaptor.java:136)
at java.base/java.net.DatagramSocket.disconnect(DatagramSocket.java:393)
at jdk.naming.dns/com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:437)
at jdk.naming.dns/com.sun.jndi.dns.DnsClient.query(DnsClient.java:214)
at jdk.naming.dns/com.sun.jndi.dns.Resolver.query(Resolver.java:81)
at jdk.naming.dns/com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434)
at java.naming/com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235)
at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141)
at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129)
at java.naming/javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:171)
at com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:114)
at com.mongodb.ConnectionString.<init>(ConnectionString.java:381)
at com.mongodb.client.MongoClients.create(MongoClients.java:61)
at io.my.package.dbsetup.DatabaseService.<init>(DatabaseService.java:28)
当我打印connectionString
并mongo $connectionString
在终端中运行时,我可以毫无问题地连接。甚至 MongoDB Compass 也可以。只是 Gradle 没有。
我的 Ubuntu 同事(我有一台 Mac)在运行相同的代码时可以毫无问题地连接。这可能是什么原因造成的?防火墙已关闭。
解决方案
原来我需要使用不同的 Java 版本 - 16 没有用,但我有 8 的运气
推荐阅读
- java - Java中的多个生产者和多个带有单个队列的Java?
- c# - 当属性具有相同代码时保持 AutoMapper ProjectTo() DRY
- c# - 如何使用 C# 中的 mongo 驱动程序按条件排序
- node.js - Axios - 主失败时调用辅助 URL
- memory-management - 我可以通过保留引用来避免克隆字符串吗?
- firebase - Facebook 和 Google 登录:Firestore
- javascript - node.js:如何使用序列和承诺来建模两个异步循环
- php - 使用自定义分类术语的 JSON API 调用
- python - Flask-SocketIO redis 订阅
- javascript - TypeScript 中的高级 JavaScript 继承