我在尝试将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)
答案 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
在生产环境中不是一个好方法,但从开发角度来看,它看起来还不错。