Installation 在Windows上运行Jenkins时出现异常

Installation 在Windows上运行Jenkins时出现异常,installation,jenkins,Installation,Jenkins,我第一次尝试将Jenkins-1.464作为windows服务安装在windows 7 64位和32位Java上。但是,当我运行它时,会抛出异常 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: B

我第一次尝试将Jenkins-1.464作为windows服务安装在windows 7 64位和32位Java上。但是,当我运行它时,会抛出异常

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)
C:\Jenkins>java-jar Jenkins.war--httpPort=8082
运行于:C:\Jenkins\Jenkins.war
webroot:$user.home/.jenkins
2012年5月16日下午4:48:04温斯顿。Logger LoginInternal
信息:开始从war文件提取
詹金斯主目录:C:\Users\Andrey\。詹金斯位于:$user.home/.Jenkins
2012年5月16日下午4:48:04温斯顿。Logger LoginInternal
信息:HTTP侦听器已启动:端口=8082
2012年5月16日下午4:48:04温斯顿。Logger LoginInternal
信息:Winstone已成功关闭
2012年5月16日下午4:48:04温斯顿。Logger LoginInternal
严重:容器启动失败
java.io.IOException:无法启动侦听器:winstone.ajp13.ajp13侦听器
位于winstone.Launcher.spawnlister(Launcher.java:229)
在winstone.Launcher.(Launcher.java:182)
位于winstone.Launcher.main(Launcher.java:384)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
在Main.\u Main(Main.java:273)
Main.Main(Main.java:98)
原因:java.io.IOException:未能在端口8009上侦听
在winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:89)
位于winstone.Launcher.spawnlister(Launcher.java:220)
... 8个以上
原因:java.net.BindException:地址已在使用中:JVM\u Bind
位于java.net.PlainSocketImpl.socketBind(本机方法)
位于java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
位于java.net.ServerSocket.bind(ServerSocket.java:328)
位于java.net.ServerSocket(ServerSocket.java:194)
位于java.net.ServerSocket。(ServerSocket.java:150)
在winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:84)
... 9更多
2012年5月16日下午4:48:04 hudson.WebAppMain$2跑步
严重:未能初始化Jenkins
java.lang.InterruptedException
在java.lang.Object.wait(本机方法)
等待(Object.java:485)
位于org.jvnet.hudson.reactor.reactor.execute(reactor.java:244)
运行(InitReactorRunner.java:43)
位于jenkins.model.jenkins.executeActor(jenkins.java:849)
jenkins.model.jenkins.(jenkins.java:761)
在hudson.model.hudson.(hudson.java:81)
在hudson.model.hudson.(hudson.java:77)
WebAppMain$2.run(WebAppMain.java:217)
线程“pool-2-thread-2”java.lang.NullPointerException中出现异常
位于org.jvnet.hudson.reactor.reactor$1.run(reactor.java:153)
位于org.jvnet.hudson.reactor.reactor$Node.run(reactor.java:94)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
线程“pool-2-thread-1”java.lang.NullPointerException中出现异常
位于org.jvnet.hudson.reactor.reactor$2.run(reactor.java:191)
位于org.jvnet.hudson.reactor.reactor$Node.run(reactor.java:94)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
我已经试过了:

  • 通过--httpPort命令行选项更改HTTP端口
  • 通过jenkins.xml中的--httpPort参数更改HTTP端口
  • 关闭Windows防火墙
但这并不能解决问题


如何修复它?

通过使用
--ajp13Port=-1
运行jenkins解决了这个问题。它将禁用ApacheJSERV协议v1.3的侦听器。您还可以将端口更改为未使用的端口


运行
java-jar jenkins.war--ajp13Port=-1--httpPort=8082之后,jenkins成功启动,可以通过
http://localhost:8082/

我发现最有用的信息是:

Caused by: java.io.IOException: Failed to listen on port 8009
您可能知道,这是典型的ApacheJSERV协议AJP连接器端口

运行
netstat-ano
时,我发现另一个进程正在侦听这个端口,而不是Jenkins。在我的例子中,一位同事安装了YouTrack,该服务在Jenkins之前就已经启动了。这让詹金斯很不高兴


我停止了YouTrack服务,启动了Jenkins,然后重新启动了YouTrack,每个人都很高兴。

将Jenkins.xml更新为

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

这对我很有效。我把Jenkins安装在一个盒子上,在那里我们用Apache/Tomcat运行Solr搜索引擎。Tomcat被绑定到AJP/1.3连接器的端口8009。