es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El driver de MongoDB 4.4.0 arroja una excepción UnsupportedAddressTypeException con Java 17.

Tengo problemas con el último controlador de MongoDB 4.4.0 en mi máquina Linux con Java 17. Genera la siguiente excepción:

  Excepción java.io.UncheckedIOException: java.net.SocketException: Tipo de dirección no compatible
        en DatagramSocketAdaptor.connect (DatagramSocketAdaptor.java:120)
        en DatagramSocket.connect (DatagramSocket.java:474)
        en DnsClient.doUdpQuery (DnsClient.java:408)
        en DnsClient.query (DnsClient.java:214)
        en Resolver.query (Resolver.java:81)
        en DnsContext.c<em>getAttributes (DnsContext.java:434)
        en ComponentDirContext.p</em>getAttributes (ComponentDirContext.java:235)
        en PartialCompositeDirContext.getAttributes (PartialCompositeDirContext.java:141)
        en PartialCompositeDirContext.getAttributes (PartialCompositeDirContext.java:129)
        en InitialDirContext.getAttributes (InitialDirContext.java:171)
        en DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords (DefaultDnsResolver.java:114)
        en ConnectionString.<init> (ConnectionString.java:388)
        en (#5:1)
  Causada por: java.net.SocketException: Tipo de dirección no compatible
        en Net.translateToSocketException (Net.java:187)
        en DatagramSocketAdaptor.connectInternal (DatagramSocketAdaptor.java:95)
        en DatagramSocketAdaptor.connect (DatagramSocketAdaptor.java:118)
        ...
  Causada por: java.nio.channels.UnsupportedAddressTypeException
        en Net.checkAddress (Net.java:161)
        en DatagramChannelImpl.connect (DatagramChannelImpl.java:1217)
        en DatagramSocketAdaptor.connectInternal (DatagramSocketAdaptor.java:91)
        ...

<p>```</p>

Funciona como se esperaba en Windows con Java 17 y también en Linux con Java 11.

Cómo puedo probarlo:

$ 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/”);

“`

El resultado esperado es javax.naming.NameNotFoundException: Nombre de DNS no encontrado, sin embargo, el resultado actual es java.nio.channels.UnsupportedAddressTypeException.

¿Alguna idea de cómo hacer que funcione?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un problema con la última versión del controlador de MongoDB 4.4.0 cuando se utiliza con Java 17 en una máquina Linux. Una solución podría ser intentar usar una versión anterior del controlador que sea compatible con Java 17 y su máquina Linux. Otra solución podría ser verificar si hay actualizaciones o parches disponibles tanto para el controlador como para el sistema operativo. También es posible que haya algunas configuraciones que necesiten ajustarse.

    Para investigar más a fondo el problema, podría intentar ejecutar algunas herramientas de diagnóstico de red en su máquina Linux para ver si hay problemas con la resolución DNS. También podría intentar ejecutar la misma prueba en una máquina Linux diferente y ver si obtiene el mismo error. También sería útil consultar la documentación y los foros de MongoDB para ver si hay problemas conocidos o soluciones alternativas para este problema.

Comments are closed.