JenkinswarをTomcatにデプロイしようとして問題が発生しました。私はCentOSをJava 1.6.0_28、Tomcat 6.0.24、および2014年1月21日現在の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)
最後に、私は困難な道をたどらなければなりませんでした。リポジトリからTomcat6パッケージに乗り、手動で再インストールしました。それは問題を解決しました。 Linuxの「公式」パッケージが機能しないときは本当に嫌いです。
とにかくありがとう。
Jenkinsはデータを保存するために/usr/share/Tomcat7/.jenkinsを作成しようとしますが、ディレクトリが作成されていないため、NoHome例外がスローされます。
これを修正するには、.jenkinsを手動で作成し(Tomcatへの正しいown/grp権限を使用)、Tomcatを再起動します。
私はまったく同じ問題に直面していました。私の場合、それはすべてJenkins/Gitエラーで始まりました。
"error: could not lock config file /usr/share/Tomcat6/.gitconfig: Permission denied".
どうやらすべての権限はOKで、.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ベースです)
Tomcatを実行しているユーザーはわかりませんが、jenkinsがホームディレクトリを作成できないようです。 JENKINS_HOMEパラメーターを調べます。
/ var/lib /のようないくつかのディレクトリを調べて、権限が正しく作成されているかどうかを検出してみてください。おそらく、「/ var/lib/jenkins」でのjenkinsホームの作成をブロックするのは「拒否された権限」です。
Tomcatを実行しているユーザーを確認します。そして、/ etc/passwdでそのユーザーのホームディレクトリがどれであるかを確認します。ホームフォルダがおそらく欠落しています。フォルダを作成し、実行中のTomcatユーザーに所有権を付与します