it-roy-ru.com

Не могу заставить Дженкинса начать использовать Tomcat

У меня возникла проблема при попытке развернуть войну Дженкинса в Tomcat. Я использую CentOS с Java 1.6.0_28, Tomcat 6.0.24 и последней версией jenkins от 21 января 2014 года.

Я думаю, что проблема больше связана с Дженкинсом из-за журнала, но не уверен. Когда я гуглю ошибку, я нахожу только те классы, которые запускают исключение, но не имеют решения. Вот журнал. Любая помощь приветствуется.

Jan 21, 2014 9:30:26 PM hudson.util.BootFailure publish
SEVERE: Failed to initialize Jenkins
hudson.util.NoHomeDir
    at hudson.WebAppMain.contextInitialized(WebAppMain.Java:126)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:3972)
    at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4467)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:791)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:771)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:526)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:905)
    at org.Apache.catalina.startup.HostConfig.deployWARs(HostConfig.Java:740)
    at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:500)
    at org.Apache.catalina.startup.HostConfig.start(HostConfig.Java:1277)
    at org.Apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.Java:321)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:119)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1053)
    at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:722)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1045)
    at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:443)
    at org.Apache.catalina.core.StandardService.start(StandardService.Java:516)
    at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:710)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:593)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:622)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)
11
reydelleon

Наконец мне пришлось пройти трудный путь. Я получил пакет Tomcat6 из репозитория и переустановил вручную. Это решило проблему. Я действительно ненавижу, когда Linux "официальные" пакеты не работают.

Спасибо, в любом случае.

1
reydelleon

Jenkins пытается создать /usr/share/Tomcat7/.jenkins для хранения своих данных, но каталог не создается, поэтому он выдает исключение NoHome.

Чтобы это исправить, создайте .jenkins вручную (с правильными собственными правами/разрешениями grp для Tomcat) и перезапустите Tomcat.

14
Ricardo Bin

Я столкнулся с точно такой же проблемой. В моем случае все началось с ошибки Jenkins/Git:

"error: could not lock config file /usr/share/Tomcat6/.gitconfig: Permission denied".

Видимо, все разрешения были в порядке, и .gitconfig не был заблокирован. Я выполнил команду chown для пользователя Tomcat, и после перезапуска службы все снова было в порядке:

Sudo chown -R Tomcat6:Tomcat6 /var/lib/Tomcat6/
Sudo chown -R Tomcat6:Tomcat6 /etc/Tomcat6/
Sudo chown -R Tomcat6:Tomcat6 /usr/share/Tomcat6/

(Мой Linux основан на Debian)

4
Pedro Nunes

Я не уверен, с каким пользователем вы используете Tomcat, но похоже, что jenkins не может создать свой домашний каталог. Посмотрите на параметр JENKINS_HOME.

2
Electrawn

Попробуйте проверить некоторые каталоги, такие как/var/lib /, чтобы определить, правильно ли сделаны разрешения, возможно, это "запрещенное разрешение", которое блокирует создание дома jenkins на "/ var/lib/jenkins"

1
Jad B.

Проверьте, какой пользователь запускает Tomcat. И проверьте, что является домашним каталогом этого пользователя в/etc/passwd. Домашняя папка, вероятно, отсутствует. Создайте папку и передайте право собственности работающему пользователю Tomcat.

0
pdenti