Tomcat5でHudsonが起動しない

Tomcat5でHudsonが起動しない

Hudson は、Tomcat で Java サーブレットとして実行される継続的インテグレーション エンジンです。 参考文献

CentOS 5.3 システムに Tomcat 5.5 を正常にインストールしました。ポート 8080 で表示および操作できます。

hudson.war ファイルをアップロードすると、成功が報告され、すべてが webapps ディレクトリに正しく解凍されたように見えます。

ただし、Tomcat Web アプリケーション マネージャー ページから Hudson アプリケーションを起動しようとすると、「FAIL - コンテキスト パス /hudson のアプリケーションを起動できませんでした」というレポートが表示されて失敗します。

バランサ、管理者、およびその他のデフォルトの Web アプリケーションは正常に起動しているようです。

このシステムでは SELinux が有効になっており、過去に問題が発生しました。今回のケースに関係があるかどうかはわかりません。

tomcat ログは次のようになります。

8-Jul-09 4:32:15 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: start: Starting web application at '/hudson'
8-Jul-09 4:32:16 PM hudson.WebAppMain contextInitialized
SEVERE: Failed to initialize Hudson
java.lang.NoClassDefFoundError: hudson.model.Hudson
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   at hudson.WebAppMain.installLogger(WebAppMain.java:227)
   at hudson.WebAppMain.contextInitialized(WebAppMain.java:112)
   at org.apache.catalina.core.StandardContext.listenerStart(catalina-5.5.23.jar.so)

   ... snip ...

   at java.lang.Class.initializeClass(libgcj.so.7rh)
   ...24 more
8-Jul-09 4:32:16 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class hudson.WebAppMain
java.lang.NoClassDefFoundError: hudson.model.Hudson
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   at hudson.WebAppMain.installLogger(WebAppMain.java:227)
   at hudson.WebAppMain.contextInitialized(WebAppMain.java:112)
   at org.apache.catalina.core.StandardContext.listenerStart(catalina-5.5.23.jar.so)

   ... snip ... 

   at org.apache.catalina.loader.WebappClassLoader.loadClass(catalina-5.5.23.jar.so)
   at java.lang.Class.forName(libgcj.so.7rh)
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   ...24 more
8-Jul-09 4:32:16 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
8-Jul-09 4:32:16 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/hudson] startup failed due to previous errors
8-Jul-09 4:32:16 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class hudson.WebAppMain
java.lang.NoClassDefFoundError: hudson.model.Hudson
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   at hudson.WebAppMain.contextDestroyed(WebAppMain.java:280)
   at org.apache.catalina.core.StandardContext.listenerStop(catalina-5.5.23.jar.so)

   ... snip ... 

   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(tomcat-util-5.5.23.jar.so)
   at java.lang.Thread.run(libgcj.so.7rh)
8-Jul-09 4:32:16 PM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'

答え1

java.lang.NoClassDefFoundError: hudson.model.Hudson

クラスローダーがクラスをロードできないようで、かもしれないによる権限の問題である可能性がありますSELinux

お使いのシステムで動作できるかどうかを確認するために、Hudson の組み込みバージョンを実行してみませんか?

答え2

設定ではこの問題を解決できなかったので、エイリアンから教訓を得て、軌道から核爆弾を投下しました。結局のところ、これが確実な唯一の方法です。

パッケージ マネージャー (yum) によってインストールされたバージョンをクリアした後、Tomcat サイトにアクセスし、Tomcat 5.5 Core および Administration Web Application のバイナリ リリースをダウンロード、インストール、および構成しました。

その後、いくつかの小さな権限の問題が発生しましたが、$CATALINA_HOME/bin/jsvc-src/native/Tomcat5.sh に保存されているスクリプトを変更して、Tomcat をデーモンとして実行したところ、すべて正常に動作するようになりました。

あまり満足のいく答えではないことは分かっていますが、これ以上頭を悩ませる余裕はありませんでした。

関連情報