2012-05-16 11 views
8

Ich versuche, Jenkins-1,464 zum ersten Mal als Windows-Dienst auf Windows 7 64-Bit mit 32-Bit-Java zu installieren. Es wird jedoch eine Ausnahme ausgelöst, wenn ich es ausführe.Ausnahme beim Ausführen von Jenkins unter 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) 

habe ich schon versucht:

  • Ändern HTTP-Port durch --httpport Befehlszeilenoption
  • Ändern HTTP-Port durch --httpport Argument in jenkins.xml
  • Ausschalten von Windows Firewall

Aber es löst nicht das Problem.

Wie behebe ich es?

Antwort

31

Problem wird gelöst, indem jenkins mit --ajp13Port=-1 ausgeführt wird. Es deaktiviert den Listener von Apache JServ Protocol v1.3. Sie können den Port auch in einen anderen Port ändern.

Nach dem Ausführen java -jar jenkins.war --ajp13Port=-1 --httpPort=8082 Jenkins wurde erfolgreich gestartet und ist über http://localhost:8082/

+0

Das ist für mich gearbeitet. Ich habe Jenkins auf einer Box installiert, auf der wir die Solr-Suchmaschine mit Apache/Tomcat betreiben. Tomcat war an Port 8009 für den AJP/1.3-Connector gebunden. –

2

fand ich, dass die nützlichsten Botschaft war:

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

Wie Sie wahrscheinlich wissen, ist dies die typisch Port Apache JServ Protokoll AJP Connector .

netstat -ano Rennen fand ich, dass ein anderer Prozess auf diesem Port statt Jenkins zuhörte. In meinem Fall hatte ein Kollege YouTrack installiert und dieser Dienst wurde vor Jenkins gestartet. Das machte Jenkins unglücklich.

hielt ich den YouTrack Dienst begann Jenkins und dann neu gestartet YouTrack und alle waren glücklich.

2

Update jenkins.xml zu

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