无法让Jenkins开始使用Tomcat

时间:2014-01-22 04:48:08

标签: tomcat deployment jenkins war

我在尝试将Jenkins战争部署到Tomcat时遇到了问题。我在2014年1月21日使用的是带有Java 1.6.0_28的CentOS,Tomcat 6.0.24和jenkins的最新版本。

我认为问题与Jenkins有关,因为日志但不确定。当我谷歌时,错误只找到引发异常但没有解决方案的类。这是日志。任何帮助表示赞赏。

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)

7 个答案:

答案 0 :(得分:14)

Jenkins尝试创建/usr/share/tomcat7/.jenkins来存储其数据,但目录未创建,因此它会抛出NoHome异常。

要解决此问题,请手动创建.jenkins(对tomcat具有正确的自己/ grp权限)并重新启动tomcat。

答案 1 :(得分:4)

我遇到了完全相同的问题。在我的情况下,这一切都始于Jenkins / Git错误:

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

显然所有权限都正常,并且.gitconfig未被锁定。 我为tomcat用户执行了一个chown,服务重启后一切都很好了:

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

答案 2 :(得分:2)

我不确定你运行tomcat的用户是什么,但看起来jenkins无法创建它的主目录。查看JENKINS_HOME参数。

答案 3 :(得分:1)

尝试检查一些目录,比如/ var / lib /来检测权限是否正确,也许是“拒绝权限”阻止在“/ var / lib / jenkins”上创建jenkins home

答案 4 :(得分:1)

最后,我不得不经历艰难的道路。我从repo乘坐Tomcat6包并手动重新安装。它解决了这个问题。当Linux“官方”软件包无效时,我真的很讨厌。

非常感谢。

答案 5 :(得分:0)

检查哪个是运行tomcat的用户。 并在/ etc / passwd中检查该用户的主目录 主文件夹可能丢失了。创建文件夹并为正在运行的tomcat用户提供所有权

答案 6 :(得分:-1)

Jenkins配置问题

我试图在Tomcat服务器中设置Jenkins Web应用程序,它不断给我这个错误:

  

严重:无法初始化Jenkins hudson.util.NoHomeDir

我通过创建文件夹来修复,如下所示:

mkdir /usr/share/tomcat7/.jenkins

在重新部署Jenkins时,我再次注意到以下错误:

  

警告:无法记录引导尝试java.io.FileNotFoundException:   /usr/share/tomcat7/.jenkins/failed-boot-attempts.txt(权限)   拒绝)

我通过提供对此文件夹的完全访问权限来解决此问题。

sudo chmod 777 /usr/share/tomcat7/.jenkins

我认为777在生产环境中不是一个好方法,但从开发角度来看,它看起来还不错。

致记:http://www.cyberaka.com/?p=422