Не могу запустить Дженкинс на Mac - PullRequest
22 голосов
/ 29 ноября 2011

Я скачал собственный пакет Mac OS X с веб-сайта Jenkins , установил его, открыл свой браузер по адресу 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)

Поскольку в сообщении об ошибке указано Address already in use Я попытался запустить его на другом порту:

$ 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)

Но я получаю Address already in use сообщение об ошибке, не имеет значения, какой порт я пробую.

Я остановил Брандмауэр на всякий случай (Системные настройки> Безопасность> Брандмауэр> Стоп). Это не помогло.

Я скопировал jenkins.war в /Users/zeljko/Jenkins и попытался запустить его с java -jar jenkins.war и java -jar jenkins.war --httpPort=8081. Те же сообщения об ошибках.

Я скачал Последний и самый лучший (1.441) jenkins.war с веб-сайта, переместил его на /Users/zeljko/Jenkins и попробовал java -jar jenkins.war и java -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 , book , ищу, но я просто не понимаю, что мне нужно сделать, чтобы это заработало .

Ответы [ 5 ]

19 голосов
/ 30 ноября 2011

Похоже, что проблема была добавлена ​​в 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
8 голосов
/ 29 ноября 2011

Это решило проблему:

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

После этого я мог запустить java -jar jenkins.war при /Users/zeljko/Jenkins.

Источник: https://stackoverflow.com/a/8008901/17469

7 голосов
/ 02 января 2012

ajp пытается прослушать 8009. Похоже, у вас запущен tomcat (следовательно, 8080 и 8009 уже заняты).При запуске Jenkins отключите ajp.

Начните с:

java -jar jenkins.war --httpPort=8081 --ajp13Port=-1
0 голосов
/ 19 мая 2015

Это в основном вызвано тем, что порт 8080 используется другим процессом (в большинстве случаев это процесс Java Tomcat). Итак, сначала вы должны выполнить:

lsof -i:8080

Затем убейте процесс, использующий порт 8080.

После этого снова выполните команду.

java -jar jenkins.war --httpPort=8081
0 голосов
/ 29 ноября 2011

Похоже, ошибка заключалась в установке собственного пакета Mac OS X. Я попытался запустить java -jar jenkins.war на машине, где я только что скачал jenkins.war, и она работает нормально. Теперь посмотрим, как запустить или удалить собственный пакет ...

...