Установка Сонара и Дженкинса на Tomcat - PullRequest
5 голосов
/ 21 октября 2011

У меня есть сервер Tomcat, и я хочу установить на него Jenkins и Sonar.Я нахожусь на дистрибутиве Debian, поэтому я получил tomcat6 и Jenkins через apt-get.Когда я копирую jenkins.war в каталог tomcat6 / webapps, все работает нормально.Однако, когда я копирую sonar.war в tomcat6 / webapps, sonar работает нормально, но 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.

Я установил sonar, загрузив его из codehaus, настроив конфигурацию базы данных и построив войну.

Кто-нибудь знает, почему это происходит и можетесть решение?

Ответы [ 2 ]

7 голосов
/ 21 октября 2011

В вашем исключении это выглядит так:

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

Есть проблема с permgen:

Эта ошибка возникает, когда в JVM заканчивается свободное место в куче постоянной генерации

Чтобы исправить ошибку, вам нужно поместить -XX:MaxPermSize=<Y>m (где <Y> - нужная вам память) в переменную среды CATALINA_OPTS.

Как этого добиться?Следуйте этой статье (например):

Как увеличить объем памяти на сервере приложений?

1 голос
/ 15 ноября 2011

Я настроил это на сервере RHEL с 8Gb RAM.Я обнаружил, что мне нужны (в catalina.sh или в неинтерактивной оболочке с запущенным tomcat) параметры виртуальной машины -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

Мне также нужно было сбросить Executor maxThreads и minSpareThreads в conf / serverXML-файл (400 и 50 соответственно), в противном случае сервер сканировал.

Кстати, если вы используете виртуальные серверы, вы можете попробовать уже настроенную виртуальную машину, SecureCI ,который настраивает полную среду Maven / Jenkins / Sonar CI из коробки.Нет конфигурации, если ваша сборка основана на Maven.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...