在Tomcat上安装Sonar和Jenkins

时间:2011-10-21 12:11:12

标签: tomcat jenkins sonarqube

我有一个tomcat服务器,我希望在它上面安装Jenkins和Sonar。我正在进行debian distibution,因此我通过apt-get获得了tomcat6和Jenkins。当我将jenkins.war复制到我的tomcat6 / webapps目录时,一切运行正常。然而,当我将sonar.war复制到tomcat6 / webapps时,声纳工作正常,但jenkins引发错误500:

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)

我还安装了经理(tomcat6-admin),当我添加sonar.war时,经理也失败了。

我已经通过从codehaus下载,设置数据库配置和构建战争来安装声纳。

有谁知道为什么会这样,可能有解决方案?

2 个答案:

答案 0 :(得分:7)

在您的例外中,它会显示:

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

permgen存在问题:

  

当永久生成堆中的JVM空间不足时,会发生此错误

要修复错误,您需要将-XX:MaxPermSize=<Y>m(其中<Y>是您想要的内存)放在CATALINA_OPTS环境变量中。

你是如何实现这一目标的?请遵循这篇文章(例如):

How can I increase memory in my application server ?

答案 1 :(得分:1)

我在具有8Gb RAM的RHEL服务器上配置了此功能。我发现我需要{在catalina.sh或运行tomcat的非交互式shell)-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

的VM选项

我还需要重置conf / server.xml文件中的Executor maxThreadsminSpareThreads(分别为400和50),否则服务器会被抓取。

顺便说一句,如果您正在使用虚拟服务器,则可以尝试已配置的VM SecureCI,它可以立即设置完整的Maven / Jenkins / Sonar CI环境。如果您的构建依赖于Maven,则没有配置。