2011-10-21 4 views
5

J'ai un serveur Tomcat et je souhaite y installer Jenkins et Sonar. Je suis sur une distribution debian, donc j'ai eu tomcat6 et Jenkins via apt-get. Lorsque je copie le fichier jenkins.war dans mon répertoire tomcat6/webapps, tout fonctionne correctement. Cependant, lorsque je copie le sonar.war à tomcat6/webapps, le sonar fonctionne très bien, mais jenkins renvoie une erreur 500:Installation de Sonar et Jenkins sur 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) 

J'ai également installer le gestionnaire (tomcat6-admin) et le gestionnaire ne parvient pas trop quand j'ajoute le sonar.war.

J'ai installé le sonar en le téléchargeant à partir de codehaus, en définissant la configuration de la base de données et en créant la guerre.

Est-ce que quelqu'un sait pourquoi cela se produit et pourrait avoir une solution?

Répondre

7

Dans votre exception, il apparaît:

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

Il y a un problème avec le PermGen:

Cette erreur se produit lorsque la machine virtuelle Java manque d'espace dans le tas de génération permanente

Pour corriger l'erreur, vous devez mettre le -XX:MaxPermSize=<Y>m (où <Y> est la mémoire que vous voulez) dans l'environnement CATALINA_OPTS variable de l'environnement.

Comment y parvenez-vous? Suivre cet article (par exemple):

How can I increase memory in my application server ?

+0

Bullseye !!! Merci beaucoup, c'est exactement ce qui s'est passé. – user995032

+0

Ne pas oublier de voter + accepter la réponse;) –

1

J'avais cette configuration sur un serveur RHEL avec 8Gb RAM. J'ai trouvé que je avais besoin (en catalina.sh ou le shell non interactif tomcat en cours d'exécution) Options VM de -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

J'ai aussi besoin de réinitialiser le Exécuteur maxThreads et minSpareThreads dans le fichier conf/server.xml (400 et 50 respectivement) , sinon le serveur a rampé. À propos, si vous utilisez des serveurs virtuels, vous pouvez essayer une machine virtuelle déjà configurée, SecureCI, qui configure un environnement complet de CI Maven/Jenkins/Sonar prêt à l'emploi. Il n'y a pas de configuration si votre build repose sur Maven.

Questions connexes