无法在 Mac 上运行 Jenkins

发布于 2024-12-18 11:07:17 字数 6409 浏览 6 评论 0 原文

我已经从 Jenkins 网站 下载了 Mac OS X 本机包,安装了它,在 http://localhost:8080/ 并收到包含以下文本的错误页面:

Status Code: 404
Exception: Request URL / not found.<br><br>
Stacktrace:
Generated by Winstone Servlet Engine v0.9.10 at Tue Nov 29 12:00:52 CET 2011

我在中找到了 jenkins.war /Applications/Jenkins并尝试使用 java -jar jenkins.war 运行它:

$ pwd
/Applications/Jenkins


$ ls
jenkins.war

$ java -jar jenkins.war
Running from: /Applications/Jenkins/jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/11/29 12:03:12] - Beginning extraction from war file
Jenkins home directory: /Users/zeljko/.jenkins found at: $user.home/.jenkins
[Winstone 2011/11/29 12:03:16] - Winstone shutdown successfully
[Winstone 2011/11/29 12:03:16] - Container startup failed
java.io.IOException: Failed to start a listener: winstone.HttpListener
    at winstone.Launcher.spawnListener(Launcher.java:250)
    at winstone.Launcher.<init>(Launcher.java:202)
    at winstone.Launcher.main(Launcher.java:398)
    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:268)
    at Main.main(Main.java:96)
Caused by: java.io.IOException: Failed to listen on port 8080
    at winstone.HttpListener.getServerSocket(HttpListener.java:117)
    at winstone.HttpListener.start(HttpListener.java:70)
    at winstone.Launcher.spawnListener(Launcher.java:241)
    ... 8 more
Caused by: java.net.BindException: Address already in use
    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.HttpListener.getServerSocket(HttpListener.java:112)
    ... 10 more

Nov 29, 2011 12:03:16 PM jenkins.model.Jenkins$6 onAttained
INFO: Started initialization
Nov 29, 2011 12:03:16 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.model.Jenkins.executeReactor(Jenkins.java:816)
    at jenkins.model.Jenkins.<init>(Jenkins.java:730)
    at hudson.model.Hudson.<init>(Hudson.java:81)
    at hudson.model.Hudson.<init>(Hudson.java:77)
    at hudson.WebAppMain$2.run(WebAppMain.java:217)

由于错误消息显示 地址已在使用中 我尝试在另一个端口上运行它:

$ java -jar jenkins.war --httpPort=8081
Running from: /Applications/Jenkins/jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/11/29 12:11:26] - Beginning extraction from war file
Jenkins home directory: /Users/zeljko/.jenkins found at: $user.home/.jenkins
[Winstone 2011/11/29 12:11:27] - HTTP Listener started: port=8081
[Winstone 2011/11/29 12:11:27] - Winstone shutdown successfully
[Winstone 2011/11/29 12:11:27] - Container startup failed
java.io.IOException: Failed to start a listener: winstone.ajp13.Ajp13Listener
    at winstone.Launcher.spawnListener(Launcher.java:250)
    at winstone.Launcher.<init>(Launcher.java:203)
    at winstone.Launcher.main(Launcher.java:398)
    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:268)
    at Main.main(Main.java:96)
Caused by: java.io.IOException: Failed to listen on port 8009
    at winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:92)
    at winstone.Launcher.spawnListener(Launcher.java:241)
    ... 8 more
Caused by: java.net.BindException: Address already in use
    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:87)
    ... 9 more

Nov 29, 2011 12:11:27 PM jenkins.model.Jenkins$6 onAttained
INFO: Started initialization
Nov 29, 2011 12:11:27 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.model.Jenkins.executeReactor(Jenkins.java:816)
    at jenkins.model.Jenkins.<init>(Jenkins.java:730)
    at hudson.model.Hudson.<init>(Hudson.java:81)
    at hudson.model.Hudson.<init>(Hudson.java:77)
    at hudson.WebAppMain$2.run(WebAppMain.java:217)

但我得到 地址已在使用错误消息,我尝试哪个端口并不重要。

我已停止防火墙,以防万一(系统偏好设置 > 安全 > 防火墙 > 停止)。这没有帮助。

我已将 jenkins.war 复制到 /Users/zeljko/Jenkins 并尝试使用 java -jar jenkins.warjava 运行它-jar jenkins.war --httpPort=8081。相同的错误消息。

我从网上下载了最新最好的(1.441)jenkins.war站点,将其移至 /Users/zeljko/Jenkins,并尝试 java -jar jenkins.warjava -jar jenkins.war --httpPort=8081。相同的错误消息。

环境:

Mac OS X 10.6.8

$ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

我正在浏览 Jenkins 网站wiki, ,四处搜索,但我只是不知道我必须做什么才能让它工作。

I have downloaded Mac OS X native package from Jenkins web site, installed it, opened my browser at http://localhost:8080/ and got error page with this text:

Status Code: 404
Exception: Request URL / not found.<br><br>
Stacktrace:
Generated by Winstone Servlet Engine v0.9.10 at Tue Nov 29 12:00:52 CET 2011

I have found jenkins.war in /Applications/Jenkins and tried running it with java -jar jenkins.war:

$ pwd
/Applications/Jenkins


$ ls
jenkins.war

$ java -jar jenkins.war
Running from: /Applications/Jenkins/jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/11/29 12:03:12] - Beginning extraction from war file
Jenkins home directory: /Users/zeljko/.jenkins found at: $user.home/.jenkins
[Winstone 2011/11/29 12:03:16] - Winstone shutdown successfully
[Winstone 2011/11/29 12:03:16] - Container startup failed
java.io.IOException: Failed to start a listener: winstone.HttpListener
    at winstone.Launcher.spawnListener(Launcher.java:250)
    at winstone.Launcher.<init>(Launcher.java:202)
    at winstone.Launcher.main(Launcher.java:398)
    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:268)
    at Main.main(Main.java:96)
Caused by: java.io.IOException: Failed to listen on port 8080
    at winstone.HttpListener.getServerSocket(HttpListener.java:117)
    at winstone.HttpListener.start(HttpListener.java:70)
    at winstone.Launcher.spawnListener(Launcher.java:241)
    ... 8 more
Caused by: java.net.BindException: Address already in use
    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.HttpListener.getServerSocket(HttpListener.java:112)
    ... 10 more

Nov 29, 2011 12:03:16 PM jenkins.model.Jenkins$6 onAttained
INFO: Started initialization
Nov 29, 2011 12:03:16 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.model.Jenkins.executeReactor(Jenkins.java:816)
    at jenkins.model.Jenkins.<init>(Jenkins.java:730)
    at hudson.model.Hudson.<init>(Hudson.java:81)
    at hudson.model.Hudson.<init>(Hudson.java:77)
    at hudson.WebAppMain$2.run(WebAppMain.java:217)

Since the error message says Address already in use I have tried running it on another port:

$ java -jar jenkins.war --httpPort=8081
Running from: /Applications/Jenkins/jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/11/29 12:11:26] - Beginning extraction from war file
Jenkins home directory: /Users/zeljko/.jenkins found at: $user.home/.jenkins
[Winstone 2011/11/29 12:11:27] - HTTP Listener started: port=8081
[Winstone 2011/11/29 12:11:27] - Winstone shutdown successfully
[Winstone 2011/11/29 12:11:27] - Container startup failed
java.io.IOException: Failed to start a listener: winstone.ajp13.Ajp13Listener
    at winstone.Launcher.spawnListener(Launcher.java:250)
    at winstone.Launcher.<init>(Launcher.java:203)
    at winstone.Launcher.main(Launcher.java:398)
    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:268)
    at Main.main(Main.java:96)
Caused by: java.io.IOException: Failed to listen on port 8009
    at winstone.ajp13.Ajp13Listener.start(Ajp13Listener.java:92)
    at winstone.Launcher.spawnListener(Launcher.java:241)
    ... 8 more
Caused by: java.net.BindException: Address already in use
    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:87)
    ... 9 more

Nov 29, 2011 12:11:27 PM jenkins.model.Jenkins$6 onAttained
INFO: Started initialization
Nov 29, 2011 12:11:27 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.model.Jenkins.executeReactor(Jenkins.java:816)
    at jenkins.model.Jenkins.<init>(Jenkins.java:730)
    at hudson.model.Hudson.<init>(Hudson.java:81)
    at hudson.model.Hudson.<init>(Hudson.java:77)
    at hudson.WebAppMain$2.run(WebAppMain.java:217)

But I get Address already in use error message, it does not matter which port I try.

I have stopped Firewall, just in case (System Preferences > Security > Firewall > Stop). It did not help.

I have copied jenkins.war to /Users/zeljko/Jenkins and tried running it with java -jar jenkins.war and java -jar jenkins.war --httpPort=8081. The same error messages.

I have downloaded Latest and greatest (1.441) jenkins.war from the web site, moved it to /Users/zeljko/Jenkins, and tried java -jar jenkins.war and java -jar jenkins.war --httpPort=8081. The same error messages.

Environment:

Mac OS X 10.6.8

$ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

I am browsing Jenkins web site, wiki, book, searching around, but I just do not get what I have to do to get it working.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

无所的.畏惧 2024-12-25 11:07:17

该问题似乎已添加到 Jenkins 的 Jira 中,希望很快就能得到解决:https://issues.jenkins-ci.org/browse/JENKINS-11714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

在我的 10.7.2 上我通过创建丢失的主文件夹并更改 Jenkins 的所有者使其工作。

安装 Jenkins 后,运行以下命令:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo mkdir -p /Users/Shared/Jenkins/Home
sudo chown -R daemon /Users/Shared/Jenkins
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

The issue appears to have been added to Jenkins' Jira, and hopefully will be fixed soon: https://issues.jenkins-ci.org/browse/JENKINS-11714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

On my 10.7.2 installation I've made it work by creating the missing Home folder and changing the owner of the Jenkins.

After installing Jenkins, run the following commands:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo mkdir -p /Users/Shared/Jenkins/Home
sudo chown -R daemon /Users/Shared/Jenkins
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
撩发小公举 2024-12-25 11:07:17

这解决了问题:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

之后我可以在 /Users/zeljko/Jenkins 运行 java -jar jenkins.war

来源:https://stackoverflow.com/a/8008901/17469

This fixed the problem:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

After that I could run java -jar jenkins.war at /Users/zeljko/Jenkins.

Source: https://stackoverflow.com/a/8008901/17469

蓝海 2024-12-25 11:07:17

ajp 尝试监听 8009。看来您已经运行了 tomcat(因此 8080 和 8009 已被占用)。启动 Jenkins 时关闭 ajp。

从以下开始:

java -jar jenkins.war --httpPort=8081 --ajp13Port=-1

ajp tries to listen on 8009. It looks like you got tomcat running (hence 8080 and 8009 are already occupied). Turn ajp off when starting Jenkins.

Start with:

java -jar jenkins.war --httpPort=8081 --ajp13Port=-1
情话难免假 2024-12-25 11:07:17

看起来错误是安装 Mac OS X 本机包。我尝试在刚刚下载jenkins.war的机器上运行java -jar jenkins.war,并且运行良好。现在看看如何运行或卸载本机包......

Looks like the mistake was to install Mac OS X native package. I have tried running java -jar jenkins.war on a machine where I just downloaded jenkins.war, and it works fine. Now to see how to get the native package running or uninstalled...

双马尾 2024-12-25 11:07:17

这主要是由于8080端口被其他进程使用造成的(大多数情况是tomcat java进程)。
因此,首先,您应该执行:

lsof -i:8080

然后杀死正在使用端口 8080 的进程。

之后,再次执行您的命令。

java -jar jenkins.war --httpPort=8081

This is mostly caused by the 8080 port is used by other process(in most case it's a tomcat java process).
So at first, you should execute:

lsof -i:8080

Then kill the process who is using port 8080.

After that, execute your command again.

java -jar jenkins.war --httpPort=8081
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文