2012-05-16 38 views
8

Tôi đang cố cài đặt Jenkins-1.464 lần đầu tiên dưới dạng dịch vụ Windows trên Windows 7 64 bit với Java 32 bit. Tuy nhiên ngoại lệ được ném khi tôi chạy nó.Ngoại lệ khi chạy Jenkins trên 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) 

Tôi đã cố gắng:

  • thay đổi cổng HTTP thông qua --httpPort tùy chọn dòng lệnh
  • thay đổi cổng HTTP thông qua lập luận --httpPort trong jenkins.xml
  • tắt của Windows tường lửa

Nhưng nó không giải quyết được vấn đề.

Làm cách nào để khắc phục sự cố?

Trả lời

31

Sự cố được giải quyết bằng cách chạy jenkins với --ajp13Port=-1. Nó sẽ vô hiệu hóa người nghe của Giao thức Apache JServ v1.3. Bạn cũng có thể thay đổi cổng thành không sử dụng.

Sau khi chạy java -jar jenkins.war --ajp13Port=-1 --httpPort=8082 Jenkins bắt đầu thành công và có thể truy cập thông qua http://localhost:8082/

+0

này đã làm việc cho tôi. Tôi đã cài đặt Jenkins trên một hộp nơi chúng tôi chạy công cụ tìm kiếm Solr với Apache/Tomcat. Tomcat bị ràng buộc với cổng 8009 cho đầu nối AJP/1.3. –

2

tôi thấy rằng các thông điệp hữu ích nhất là:

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

Như bạn đã biết, đây là cổng Apache JServ Nghị định thư AJP nối điển hình .

Chạy netstat -ano Tôi thấy rằng một quá trình khác đang lắng nghe trên cổng này thay vì Jenkins. Trong trường hợp của tôi, một đồng nghiệp đã cài đặt YouTrack và dịch vụ đó đã được bắt đầu trước Jenkins. Điều này khiến Jenkins không vui.

Tôi đã dừng dịch vụ YouTrack, khởi động Jenkins và sau đó khởi động lại YouTrack và mọi người đều hài lòng.

2

cập nhật jenkins.xml để

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --ajp13Port=-1 --httpPort=8082</arguments> 
Các vấn đề liên quan