哈德森未能在tomcat5中启动

Hudson是一个持续集成引擎,在Tomcat中作为Java Servlet运行。 https://hudson.dev.java.net/

我在我的CentOS 5.3系统上成功安装了Tomcat 5.5。 我可以在端口8080上看到它并与之交互。

我可以上传报告成功的hudson.war文件,并将所有内容正确解压到webapps目录中。

但是,当我尝试从tomcat web应用程序pipe理器页面启动hudson应用程序时,它报告“失败 – 上下文path/ hudson应用程序无法启动”失败。

平衡器,pipe理员和其他默认webapps似乎正确启动。

在这个系统上启用了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' 

 java.lang.NoClassDefFoundError: hudson.model.Hudson 

看起来像类加载器无法加载类,这可能是由于SELinux的权限问题。

你可以尝试运行Hudson的embedded式版本,只是为了清除它可以在你的系统上工作?

我无法通过configuration来解决这个问题,所以我从外星人那里得到了一个教训,然后把它从轨道上剔除。 毕竟,这是唯一确定的方法。

清除我的软件包pipe理器(yum)安装的版本后,我去了tomcat站点,下载,安装并configuration了它们的Tomcat 5.5 Core和Administration Web Application的二进制版本。

之后,我有一些次要的权限问题,修改了它们保留在$ CATALINA_HOME / bin / jsvc-src / native / Tomcat5.sh中的脚本,作为守护程序运行tomcat,现在一切似乎都正常。

我知道,这不是一个非常令人满意的答案,但是我再也不能把我的头撞到它了。