【发布时间】:2022-01-06 10:46:55
【问题描述】:
我在安装 Java 17 的 Linux 机器上使用最新的 mongodb 驱动程序 4.4.0 时遇到问题。它会引发以下异常:
Exception java.io.UncheckedIOException: java.net.SocketException: Unsupported address type
at DatagramSocketAdaptor.connect (DatagramSocketAdaptor.java:120)
at DatagramSocket.connect (DatagramSocket.java:474)
at DnsClient.doUdpQuery (DnsClient.java:408)
at DnsClient.query (DnsClient.java:214)
at Resolver.query (Resolver.java:81)
at DnsContext.c_getAttributes (DnsContext.java:434)
at ComponentDirContext.p_getAttributes (ComponentDirContext.java:235)
at PartialCompositeDirContext.getAttributes (PartialCompositeDirContext.java:141)
at PartialCompositeDirContext.getAttributes (PartialCompositeDirContext.java:129)
at InitialDirContext.getAttributes (InitialDirContext.java:171)
at DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords (DefaultDnsResolver.java:114)
at ConnectionString.<init> (ConnectionString.java:388)
at (#5:1)
Caused by: java.net.SocketException: Unsupported address type
at Net.translateToSocketException (Net.java:187)
at DatagramSocketAdaptor.connectInternal (DatagramSocketAdaptor.java:95)
at DatagramSocketAdaptor.connect (DatagramSocketAdaptor.java:118)
...
Caused by: java.nio.channels.UnsupportedAddressTypeException
at Net.checkAddress (Net.java:161)
at DatagramChannelImpl.connect (DatagramChannelImpl.java:1217)
at DatagramSocketAdaptor.connectInternal (DatagramSocketAdaptor.java:91)
...
它可以在我的带有 Java 17 的 Windows 以及带有 Java 11 的 Linux 上按预期工作。
我如何测试它:
$ jshell --class-path mongodb-driver-core-4.4.0.jar
jshell> import com.mongodb.ConnectionString;
jshell> ConnectionString cs = new ConnectionString("mongodb+srv://xyz.mongodb.net/");
预期结果是javax.naming.NameNotFoundException: DNS name not found,但实际结果是java.nio.channels.UnsupportedAddressTypeException。
知道如何让它工作吗?
【问题讨论】:
标签: java mongodb spring-data-mongodb java-17