2012-05-16 15 views
8

Próbuję zainstalować Jenkins-1.464 po raz pierwszy jako usługa Windows na 64-bitowym Windows 7 z 32-bitową Javą. Jednak wyjątek jest generowany, gdy go uruchomię.Wyjątek podczas uruchamiania Jenkins na Windows

C:\Jenkins>java -jar jenkins.war --httpPort=8082 
Running from: C:\Jenkins\jenkins.war 
webroot: $user.home/.jenkins 
May 16, 2012 4:48:04 PM winstone.Logger logInternal 
INFO: Beginning extraction from war file 
Jenkins home directory: C:\Users\Andrey\.jenkins found at: $user.home/.jenkins 
May 16, 2012 4:48:04 PM winstone.Logger logInternal 
INFO: HTTP Listener started: port=8082 
May 16, 2012 4:48:04 PM winstone.Logger logInternal 
INFO: Winstone shutdown successfully 
May 16, 2012 4:48:04 PM winstone.Logger logInternal 
SEVERE: Container startup failed 
java.io.IOException: Failed to start a listener: winstone.ajp13.Ajp13Listener 
     at winstone.Launcher.spawnListener(Launcher.java:229) 
     at winstone.Launcher.<init>(Launcher.java:182) 
     at winstone.Launcher.main(Launcher.java:384) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at Main._main(Main.java:273) 
     at Main.main(Main.java:98) 
Caused by: java.io.IOException: Failed to listen on port 8009 
     at winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:89) 
     at winstone.Launcher.spawnListener(Launcher.java:220) 
     ... 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(PlainSocketImpl.java:383) 
     at java.net.ServerSocket.bind(ServerSocket.java:328) 
     at java.net.ServerSocket.<init>(ServerSocket.java:194) 
     at java.net.ServerSocket.<init>(ServerSocket.java:150) 
     at winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:84) 
     ... 9 more 
May 16, 2012 4:48:04 PM hudson.WebAppMain$2 run 
SEVERE: Failed to initialize Jenkins 
java.lang.InterruptedException 
     at java.lang.Object.wait(Native Method) 
     at java.lang.Object.wait(Object.java:485) 
     at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:244) 
     at jenkins.InitReactorRunner.run(InitReactorRunner.java:43) 
     at jenkins.model.Jenkins.executeReactor(Jenkins.java:849) 
     at jenkins.model.Jenkins.<init>(Jenkins.java:761) 
     at hudson.model.Hudson.<init>(Hudson.java:81) 
     at hudson.model.Hudson.<init>(Hudson.java:77) 
     at hudson.WebAppMain$2.run(WebAppMain.java:217) 
Exception in thread "pool-2-thread-2" java.lang.NullPointerException 
     at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:153) 
     at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
Exception in thread "pool-2-thread-1" java.lang.NullPointerException 
     at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:191) 
     at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 

Ja już próbowałem:

  • zmianę portu HTTP poprzez --httpPort linii poleceń opcji
  • zmianę portu HTTP poprzez --httpPort argumentu w jenkins.xml
  • wyłączenie systemu Windows zapora ogniowa

Ale to nie rozwiązuje problemu.

Jak to naprawić?

Odpowiedz

31

Problem można rozwiązać, uruchamiając grę Jennkins pod numerem --ajp13Port=-1. Spowoduje to wyłączenie słuchacza protokołu Apache JServ v1.3. Możesz także zmienić port na nieużywany.

Po uruchomieniu java -jar jenkins.war --ajp13Port=-1 --httpPort=8082 Jenkins rozpoczął się pomyślnie i jest dostępny poprzez http://localhost:8082/

+0

Ten pracował dla mnie. Zainstalowałem Jenkinsa na pudełku, w którym uruchamiamy wyszukiwarkę Solr z Apache/Tomcat. Tomcat był zobowiązany do portu 8009 dla złącza AJP/1.3. –

2

okazało się, że najbardziej użyteczne wiadomość brzmiała:

Caused by: java.io.IOException: Failed to listen on port 8009 

Jak zapewne wiecie, jest to typowy port Apache JServ Protokół AJP Connector .

Uruchamianie netstat -ano Zauważyłem, że inny proces nasłuchiwał na tym porcie zamiast Jenkins. W moim przypadku kolega zainstalował YouTrack i ta usługa została uruchomiona przed Jenkinsem. To sprawiło, że Jenkins był nieszczęśliwy.

Zatrzymałem usługę YouTrack, zacząłem Jenkinsa, a następnie ponownie uruchomiłem YouTrack i wszyscy byli zadowoleni.

2

aktualizacja jenkins.xml do

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --ajp13Port=-1 --httpPort=8082</arguments> 
Powiązane problemy