2012-05-17 17 views
18

Estoy usando Jenkins y desde ayer ha dejado de funcionar. Miré el servicio de Windows y se detuvo (de alguna manera). Lo reinicié pero se detuvo inmediatamente después.Jenkins no se iniciará: No se pudo escuchar en el puerto 8080

He buscado en el directorio donde se ejecuta el servicio (C: \ Program Files \ Jenkins) y he abierto el archivo de registro llamado jenkins.out.log. Esto es lo que dice

Running from: C:\Program Files\Jenkins\jenkins.war 
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") 
[Winstone 2012/05/17 10:14:42] - Beginning extraction from war file 
Jenkins home directory: C:\Program Files\Jenkins found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 
[Winstone 2012/05/17 10:14:44] - Winstone shutdown successfully 
[Winstone 2012/05/17 10:14:44] - Container startup failed 
java.io.IOException: Failed to start a listener: winstone.HttpListener 
    at winstone.Launcher.spawnListener(Launcher.java:250) 
    at winstone.Launcher.<init>(Launcher.java:202) 
    at winstone.Launcher.main(Launcher.java:398) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at Main._main(Main.java:268) 
    at Main.main(Main.java:96) 
Caused by: java.io.IOException: Failed to listen on port 8080 
    at winstone.HttpListener.getServerSocket(HttpListener.java:117) 
    at winstone.HttpListener.start(HttpListener.java:70) 
    at winstone.Launcher.spawnListener(Launcher.java:241) 
    ... 8 more 
Caused by: java.net.BindException: Address already in use: JVM_Bind 
    at java.net.PlainSocketImpl.socketBind(Native Method) 
    at java.net.PlainSocketImpl.bind(Unknown Source) 
    at java.net.ServerSocket.bind(Unknown Source) 
    at java.net.ServerSocket.<init>(Unknown Source) 
    at java.net.ServerSocket.<init>(Unknown Source) 
    at winstone.HttpListener.getServerSocket(HttpListener.java:112) 
    ... 10 more 
+2

Dado que el registro de errores afirma que el puerto 8080 ya está vinculado a otro proceso de JVM, ¿intentó 'telnet' a esta dirección y ver qué está respondiendo? – Filburt

+1

¿cómo podría hacer eso? –

Respuesta

28

Reparado - para cualquier otra persona que pueda tener este problema en el futuro. He utilizado este Techrepublic article, que se reduce a

netstat -a -n -o | grep "8080" 

para averiguar cómo averiguar qué proceso se utiliza el puerto 8080 y luego lo mataba en el Administrador de tareas y luego reinicia Jenkins y todo estaba bien (hasta ahora!).

+1

+1 ... o de esta manera. – Filburt

+2

Podría suceder después de un intento de reiniciar Jenkins, donde el proceso de Java no se cerró correctamente ... Trate de ** matar el proceso de Java ** manualmente, y luego reinicie el servicio de Jenkins. –

3

Como en Error Stack Trace se menciona que el puerto 8080 ya está en uso, verifique dónde se usa el puerto 8080 o como alternativa cambiar el puerto de Jenkins en Jenkins.xml a algún otro puerto disponible.

16

Para iniciar Jenkins en el envase WinStone (por defecto contenedor incluido con la guerra Jenkins) utiliza el siguiente comando:

java -jar jenkins.war --ajp13Port=-1 --httpPort=9090

También, para comprobar si un determinado puerto está siendo utilizado por cualquier uso de aplicaciones en Windows:

netstat -ano | find "9090"

Su mejor correr Jenkins en Tomcat.

+1

¡Gracias! "java -jar jenkins.war --ajp13Port = -1 --httpPort = 9090" -> Este comando me salvó el día –

0

Tuve el problema similar, traté de actualizar a Jenkins como estaba pidiendo, pero luego el servicio de Windows no se iniciará, algo más se estaba ejecutando en el puerto 8080. Resultó ser una instancia del proceso java.exe después de que lo maté en el Administrador de tareas todo comenzó a funcionar bien.

0
java -jar jenkins.war --ajp13Port=-1 --httpPort=9090 

Esto es muy útil, que he usado cuando estaba frente a diferentes excepciones durante la instalación de Jenkins.

Cuestiones relacionadas