2012-05-16 10 views
8

पर जेनकींस चलाते समय अपवाद जब मैं पहली बार जेनकींस-1.464 को विंडोज 7 64-बिट पर विंडोज़ सेवा के साथ 32-बिट जावा के साथ स्थापित करने की कोशिश कर रहा हूं। हालांकि जब मैं इसे चलाता हूं तो अपवाद फेंक दिया जाता है।विंडोज

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) 

मैं पहले से ही की कोशिश की है:

  • --httpPort आदेश पंक्ति विकल्प
  • के माध्यम से HTTP पोर्ट को बदलने jenkins.xml में --httpPort तर्क के माध्यम से HTTP पोर्ट को बदलने
  • बंद विंडोज मोड़ फ़ायरवॉल

लेकिन यह इस मुद्दे को हल नहीं करता है।

मैं इसे कैसे ठीक करूं?

उत्तर

31

--ajp13Port=-1 के साथ जेनकींस चलाकर समस्या हल हो जाती है। यह अपाचे जेएसवीआर प्रोटोकॉल v1.3 के श्रोता को अक्षम कर देगा। आप अप्रयुक्त एक को बंदरगाह भी बदल सकते हैं।

चल java -jar jenkins.war --ajp13Port=-1 --httpPort=8082 जेनकींस सफलतापूर्वक प्रारंभ किया और के माध्यम से http://localhost:8082/

+0

को यह मेरे लिए काम किया। मैंने जेनकिंस को एक बॉक्स पर स्थापित किया जहां हम अपाचे/टोमकैट के साथ सोलर सर्च इंजन चलाते हैं। एएमपी/1.3 कनेक्टर के लिए टोमकैट 800 9 पोर्ट करने के लिए बाध्य था। –

2

पहुँचा जा सकता है के बाद मैंने पाया कि सबसे अधिक उपयोगी संदेश था:

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

आप शायद जानते हैं, इस विशिष्ट अपाचे JServ प्रोटोकॉल AJP कनेक्टर बंदरगाह है ।

netstat -ano चल रहा है मैंने पाया कि जेनकिंस की बजाय इस बंदरगाह पर एक और प्रक्रिया सुन रही थी। मेरे मामले में एक सहयोगी ने यूट्रैक स्थापित किया था और वह सेवा जेनकींस से पहले शुरू की गई थी। इसने जेनकिंस को नाखुश बना दिया।

मैंने यूट्रैक सेवा को रोक दिया, जेनकींस शुरू किया और फिर यूट्रैक को फिर से शुरू किया और सभी खुश थे।

2

अद्यतन jenkins.xml

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