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

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

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

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)

Ответ 1

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

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

Ответ 2

Дженкинс пытается создать /usr/share/tomcat 7/.jenkins для хранения своих данных, но каталог не создан, поэтому он выдает NoHome Exception.

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

Ответ 3

Я столкнулся с одной и той же проблемой. В моем случае все началось с ошибки 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

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

Ответ 5

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

Ответ 6

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