【问题标题】:Installing Sonar and Jenkins on Tomcat在 Tomcat 上安装 Sonar 和 Jenkins
【发布时间】:2011-12-12 13:09:03
【问题描述】:

我有一个 tomcat 服务器,我希望在上面安装 Jenkins 和 Sonar。我在 debian distibition,因此我通过 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 下载声纳、设置数据库配置和构建战争来安装声纳。

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

【问题讨论】:

    标签: tomcat jenkins sonarqube


    【解决方案1】:

    在您的例外中,它出现:

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

    permgen 有问题:

    当JVM用完永久代堆空间时会出现这个错误

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

    你是如何做到这一点的?关注这篇文章(例如):

    How can I increase memory in my application server ?

    【讨论】:

      【解决方案2】:

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

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

      顺便说一句,如果您使用的是虚拟服务器,您可以尝试一个已经配置好的 VM,SecureCI,它可以设置一个完整的 Maven/Jenkins/Sonar CI 环境,开箱即用。如果您的构建依赖于 Maven,则无需配置。

      【讨论】:

        猜你喜欢
        • 2015-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-08
        • 2021-05-16
        相关资源
        最近更新 更多