HOWTO · Java
Solucione Java.Net.SocketException: Permiso denegado en Java
Este tutorial demuestra java.net.SocketException: error de permiso denegado en Java.
En esta página
Este tutorial demuestra el error java.net.SocketException: Permiso denegado en Java.
Causas del error java.net.SocketException: Permiso denegado en Java
La SocketException suele ocurrir cuando hay un problema con la conexión de red. Puede ser Permiso denegado, Restablecer conexión, o cualquier otra cosa.
El error java.net.SocketException: Permiso denegado ocurre cuando no hay permiso de la red para conectarse con un determinado puerto. El error puede ocurrir al conectar o configurar los ajustes de red en diferentes plataformas.
El error java.net.SocketException: Permiso denegado puede ocurrir en cualquier tipo de servidor como Tomcat u OpenShift.
Estas son las razones principales del error java.net.SocketException: Permiso denegado:
- Cuando el sistema operativo no permite un número de puerto en particular.
- El antivirus o cortafuegos detiene la conexión a una determinada red.
- A veces, un problema con la versión anterior de Java.
Solucione el error java.net.SocketException: Permiso denegado en Java
Por ejemplo, al configurar el certificado HTTPS para el servidor Tomcat, puede ocurrir el error java.net.SocketException: Permiso denegado al iniciar el servidor:
Caused by: java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:438)
at sun.nio.ch.Net.bind(Net.java:430)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:225)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:221)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:223)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:587)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1058)
... 13 more
El motivo de este error es que el sistema operativo está deteniendo la conexión. Debido a que el sistema Linux no permite que los usuarios que no sean root usen la raíz menos de 1024; por lo tanto, se convierte en un problema de permisos.
Ahora bien, las soluciones a este problema pueden ser:
- La mejor solución es usar la cuenta raíz para iniciar el servidor Tomcat.
- Si Linux no permite números de puerto inferiores a 1024, utilice un puerto superior a este número. El número de puerto se agregará a la solicitud de URL.
De manera similar, al usar el servidor openshift, puede ocurrir el mismo error java.net.SocketException: Permiso denegado. Y la razón podría ser que el firewall o el antivirus lo estén deteniendo o que la versión de Java que está utilizando no sea compatible.
La posible solución para esto puede ser:
-
Detenga el antivirus y el firewall. O comprueba que no estén bloqueando el servidor.
-
Use Java 8 o versiones superiores. O coloque los siguientes argumentos de VM en su aplicación para poder ejecutar y conectarse usando Java 7:
-Djava.net.preferIPv4Stack=true -
Consulte las bibliotecas o paquetes de terceros si tienen algunos requisitos específicos. Algunos de ellos también causarán el error
java.net.SocketException: Permiso denegado.