首页 > 解决方案 > 即使我可以从命令行连接,也无法从 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)

当我打印connectionStringmongo $connectionString在终端中运行时,我可以毫无问题地连接。甚至 MongoDB Compass 也可以。只是 Gradle 没有

我的 Ubuntu 同事(我有一台 Mac)在运行相同的代码时可以毫无问题地连接。这可能是什么原因造成的?防火墙已关闭。

标签: javamongodbgradle

解决方案


原来我需要使用不同的 Java 版本 - 16 没有用,但我有 8 的运气


推荐阅读