2011-10-21 32 views
5

我有一个tomcat服务器,我希望在上面安装Jenkins和Sonar。我处于debian分发版,因此我通过apt-get获得了tomcat6和Jenkins。当我将jenkins.war复制到我的tomcat6/webapps目录时,一切运行良好。然而,当我复制到sonar.war的Tomcat6/webapps中,声呐工作正常,但詹金斯抛出一个错误500:在Tomcat上安装Sonar和Jenkins

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下载声纳,设置数据库配置和构建战争。

有谁知道为什么会发生这种情况,并可能有解决方案吗?

回答

7

在你的例外,它出现:

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

有与PermGen的一个问题:

当JVM在永久代堆运行的空间,会出现此错误

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

你是如何做到这一点的?按照此文章(例如):

How can I increase memory in my application server ?

+0

红眼!非常感谢,这正是发生的事情。 – user995032

+0

不要忘记投票+接受答案;) –

1

我这有8GB的内存在RHEL服务器上配置。我发现我需要(在catalina.sh或非交互式shell运行Tomcat)的-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

我还需要重新设置执行人maxThreads,并在conf/server.xml文件minSpareThreads VM选项(400和50分别地) ,否则服务器爬网。顺便说一下,如果你使用的是虚拟服务器,你可以尝试一个已经配置的虚拟机SecureCI,这个虚拟机建立了一个完整的Maven/Jenkins/Sonar CI环境。如果你的构建依赖于Maven,那么没有配置。