Hudson é um mecanismo de integração contínua executado como um Java Servlet no Tomcat. https://hudson.dev.java.net/
Tenho o Tomcat 5.5 instalado com sucesso em meu sistema CentOS 5.3. Posso ver e interagir com ele na porta 8080.
Posso fazer upload do arquivo hudson.war que relata sucesso e parece descompactar tudo corretamente no diretório webapps.
No entanto, quando tento iniciar o aplicativo Hudson a partir da página do gerenciador de aplicativos da Web do Tomcat, ele falha no relatório "FAIL - o aplicativo no caminho do contexto /hudson não pôde ser iniciado".
O balanceador, o administrador e outros aplicativos da web padrão parecem iniciar corretamente.
O SELinux está habilitado neste sistema, o que me causou alguns problemas no passado. Não tenho certeza se é relevante para este caso.
O log do Tomcat fica assim:
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'
Responder1
java.lang.NoClassDefFoundError: hudson.model.Hudson
Parece que o carregador de classes não consegue carregar as classes epoderser um problema de permissões devido a SELinux
.
Você pode tentar executar a versão incorporada do Hudson, apenas para esclarecer se ela pode funcionar no seu sistema?
Responder2
Não consegui resolver isso por meio da configuração, então tirei uma lição de Aliens e tirei-o da órbita. Afinal, é a única maneira de ter certeza.
Depois de limpar a versão instalada pelo meu gerenciador de pacotes (yum), fui ao site do Tomcat e baixei, instalei e configurei a versão binária do Tomcat 5.5 Core e do aplicativo Web de administração.
Depois disso, tive alguns pequenos problemas de permissão, modifiquei o script que eles mantêm em $CATALINA_HOME/bin/jsvc-src/native/Tomcat5.sh para executar o Tomcat como um daemon, e agora tudo parece funcionar bem.
Eu sei, não é uma resposta muito satisfatória, mas eu não podia mais me dar ao luxo de bater a cabeça contra ela.