Hudson 是一个持续集成引擎,在 tomcat 中作为 Java Servlet 运行。 https://hudson.dev.java.net/
我在 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'
看起来类加载器无法加载类,这可能是由于
SELinux
.您可以尝试运行 Hudson 的嵌入式版本,以明确它可以在您的系统上运行吗?
我无法通过配置来解决这个问题,所以我从外星人那里吸取了教训,并从轨道上用核武器摧毁了它。毕竟,这是唯一确定的方法。
在清除了我的包管理器 (yum) 安装的版本后,我去了 tomcat 站点并下载、安装和配置了他们的 Tomcat 5.5 Core 和管理 Web 应用程序的二进制版本。
之后我遇到了一些小的权限问题,修改了他们保存在 $CATALINA_HOME/bin/jsvc-src/native/Tomcat5.sh 中的脚本以将 tomcat 作为守护进程运行,现在一切似乎都运行良好。
我知道,这不是一个非常令人满意的答案,但我不能再用头撞它了。