Me encontré con este problema al intentar enviar correo con javax.mail desde una aplicación web en un servidor web con Java 7. Los destinos del servidor de correo interno fallaron con "red inalcanzable", a pesar de telnet y ping trabajando desde el mismo host , y mientras los servidores de correo externos funcionaban. Intenté
System.setProperty("java.net.preferIPv4Stack" , "true");
en el código, pero eso falló. Entonces, el sistema probablemente guardó en caché el valor del parámetro. Configuración del argumento VM
-Djava.net.preferIPv4Stack=true
en el script de inicio del servidor web funcionó.
Un poco más de evidencia: en un programa de prueba dirigido muy pequeño, la configuración de la propiedad del sistema en el código hizo el trabajo. Entonces, el parámetro probablemente se almacena en caché cuando se usa el primer Socket, probablemente no solo cuando se inicia JVM.
Desactivar IPv6 para solucionar algunos de los errores que tiene en su código es solo un problema para el futuro. Solucione el problema real ahora y ahórrese un dolor de cabeza más adelante. – Flexo
Me gustaría saber * por qué * sientes que necesitas inhabilitar IPv6. Puede haber una razón legítima, pero aún no he visto ninguna ... –
@BrianKnoblauch Aquí está: [authbind] (http://manpages.ubuntu.com/manpages/hardy/man1/authbind.1.html) funciona solo con IP4. – maaartinus