2011-10-21 20 views
5

Ho un server tomcat e desidero installare Jenkins e Sonar su di esso. Sono in una distribuzione debian, quindi ho ottenuto tomcat6 e Jenkins tramite apt-get. Quando copio jenkins.war nella mia directory tomcat6/webapps, tutto funziona correttamente. Tuttavia quando copio il sonar.war a tomcat6/webapps, sonar funziona bene, ma Jenkins genera un errore 500:Installazione di Sonar e Jenkins su Tomcat

javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: jar:file:/var/lib/tomcat6/webapps/jenkins/WEB-INF/lib/jenkins-core-1.435.jar!/hudson/model/View/index.jelly:39:43: <st:include> PermGen space 
    org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) 
    org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:124) 
    org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:550) 
    org.kohsuke.stapler.Stapler.invoke(Stapler.java:646) 
    org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:612) 
    org.kohsuke.stapler.Stapler.invoke(Stapler.java:646) 
    org.kohsuke.stapler.Stapler.invoke(Stapler.java:477) 
    org.kohsuke.stapler.Stapler.service(Stapler.java:159) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) 
    hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) 
    hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) 
    hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
    hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
    hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
    hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 

Ho anche installare il gestore (tomcat6-admin) e il manager sta fallendo anche quando aggiungo il sonar.war.

Ho installato il sonar scaricandolo da codehaus, impostando la configurazione del database e costruendo la guerra.

Qualcuno sa perché questo sta accadendo e potrebbe avere una soluzione?

risposta

7

Nella vostra eccezione, appare:

PermGen space 
org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) 

C'è un problema con il PermGen:

Questo errore si verifica quando la JVM si esaurisce lo spazio nel mucchio permanente generazione

Per correggere l'errore, è necessario inserire -XX:MaxPermSize=<Y>m (dove <Y> è la memoria desiderata) in CATALINA_OPTS envi variabile ronment.

Come si ottiene questo? Seguire questo articolo (per esempio):

How can I increase memory in my application server ?

+0

Bullseye !!! Grazie mille, è esattamente quello che è successo. – user995032

+0

Non dimenticare di votare + accettare la risposta;) –

1

avevo questo configurato su un server RHEL con 8GB di RAM. Ho trovato che mi serviva (in catalina.sh o non interattivo della shell in esecuzione Tomcat) opzioni VM di -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

ho anche bisogno di resettare l'Esecutore maxThreads, e minSpareThreads nel file conf/server.xml (400 e 50 rispettivamente) , altrimenti il ​​server ha eseguito la scansione.

A proposito, se si utilizzano i server virtuali, è possibile provare una macchina virtuale già configurata, SecureCI, che imposta un ambiente Maven/Jenkins/Sonar completo dalla configurazione predefinita. Non c'è configurazione se la tua build si basa su Maven.

Problemi correlati