Hudson在tomcat5中啟動失敗

Hudson在tomcat5中啟動失敗

Hudson 是一個持續整合引擎,在 tomcat 中以 Java Servlet 運行。 https://hudson.dev.java.net/

我已在 CentOS 5.3 系統上成功安裝 Tomcat 5.5。我可以在連接埠 8080 上看到它並與之互動。

我可以上傳 hudson.war 文件,該文件報告成功並且似乎將所有內容正確解壓縮到 webapps 目錄中。

但是,當我嘗試從 tomcat Web 應用程式管理員頁面啟動 hudson 應用程式時,它無法報告「失敗 - 上下文路徑 /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 和管理 Web 應用程式的二進位版本。

之後我遇到了一些小的權限問題,修改了它們保存在 $CATALINA_HOME/bin/jsvc-src/native/Tomcat5.sh 中的腳本以將 tomcat 作為守護進程運行,現在一切似乎都運行良好。

我知道,這不是一個非常令人滿意的答案,但我不能再用頭去反對它了。

相關內容