iceScrum | Centos 6.6, Tomcat 7 et jdk 7 : impossible de démarrer – iceScrum

iceScrum Forums Discutez d'iceScrum

4 sujets de 1 à 4 (sur un total de 4)

  • Auteur
    Messages
  • #10689

    Kagilum
    Maître des clés

    Bonjour,

    Je tente d’installer Icescrum sur un serveur sous Centos 6.6 avec le package tomcat 7 venu de EPEL.

    J’ai tenté avec l’openjdk et le jdk oracle sans le moindre changement.

    Voici la sortie de catalina.out en mode debug :

    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol pause
    INFOS: Pausing ProtocolHandler ["http-nio-8080"]
    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol pause
    INFOS: Pausing ProtocolHandler ["ajp-bio-8009"]
    nov. 23, 2014 8:34:39 PM org.apache.catalina.core.StandardService stopInternal
    INFOS: Arrêt du service Catalina
    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol stop
    INFOS: Stopping ProtocolHandler ["http-nio-8080"]
    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol stop
    INFOS: Stopping ProtocolHandler ["ajp-bio-8009"]
    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol destroy
    INFOS: Destroying ProtocolHandler ["http-nio-8080"]
    nov. 23, 2014 8:34:39 PM org.apache.coyote.AbstractProtocol destroy
    INFOS: Destroying ProtocolHandler ["ajp-bio-8009"]
    nov. 23, 2014 8:34:47 PM org.apache.catalina.core.AprLifecycleListener init
    INFOS: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on
    the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
    nov. 23, 2014 8:34:47 PM org.apache.coyote.AbstractProtocol init
    INFOS: Initializing ProtocolHandler ["http-nio-8080"]
    nov. 23, 2014 8:34:48 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
    INFOS: Using a shared selector for servlet write/read
    nov. 23, 2014 8:34:48 PM org.apache.coyote.AbstractProtocol init
    INFOS: Initializing ProtocolHandler ["ajp-bio-8009"]
    nov. 23, 2014 8:34:48 PM org.apache.catalina.startup.Catalina load
    INFOS: Initialization processed in 2095 ms
    nov. 23, 2014 8:34:48 PM org.apache.catalina.core.StandardService startInternal
    INFOS: Démarrage du service Catalina
    nov. 23, 2014 8:34:48 PM org.apache.catalina.core.StandardEngine startInternal
    INFOS: Starting Servlet Engine: Apache Tomcat/7.0.33
    nov. 23, 2014 8:34:48 PM org.apache.catalina.startup.HostConfig deployWAR
    INFOS: Déploiement de l'archive /var/lib/tomcat/webapps/icescrum.war de l'application web
    nov. 23, 2014 8:34:48 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
    INFOS: validateJarFile(/usr/share/tomcat/webapps/icescrum/WEB-INF/lib/geronimo-servlet_3.0_spec-1.0.jar) - jar not loaded. See
    Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    Server Timezone : UTC
    log dir : /var/log/tomcat/
    Including configuration file specified on command line: /etc/icescrum/config.groovy
    (*) grails.config.locations = [file:/etc/icescrum/config.groovy]
    2014-11-23 20:35:26,327 [localhost-startStop-1] INFO spring.BeanBuilder - [RuntimeConfiguration] Configuring data source for environment: PRODUCTION
    2014-11-23 20:35:26,352 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed
    org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
    at org.codehaus.groovy.grails.web.context.GrailsContextLoader.createWebApplicationContext(GrailsContextLoader.java:87)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
    at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:723)
    at grails.spring.BeanBuilder.beans(BeanBuilder.java:573)
    at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:519)
    ... 5 more
    Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    ... 8 more
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool.impl.GenericObjectPool
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 10 more
    nov. 23, 2014 8:35:26 PM org.apache.catalina.core.StandardContext startInternal
    GRAVE: Error listenerStart
    2014-11-23 20:35:27,380 [localhost-startStop-1] INFO util.SessionIdGenerator - Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1 014] milliseconds.
    nov. 23, 2014 8:35:27 PM org.apache.catalina.core.StandardContext startInternal
    GRAVE: Erreur de démarrage du contexte [/icescrum] suite aux erreurs précédentes
    nov. 23, 2014 8:35:27 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFOS: Déploiement du répertoire /var/lib/tomcat/webapps/host-manager de l'application web
    nov. 23, 2014 8:35:27 PM org.apache.catalina.startup.HostConfig deployDirectory
    INFOS: Déploiement du répertoire /var/lib/tomcat/webapps/manager de l'application web
    nov. 23, 2014 8:35:27 PM org.apache.coyote.AbstractProtocol start
    INFOS: Starting ProtocolHandler ["http-nio-8080"]
    nov. 23, 2014 8:35:27 PM org.apache.coyote.AbstractProtocol start
    INFOS: Starting ProtocolHandler ["ajp-bio-8009"]
    nov. 23, 2014 8:35:27 PM org.apache.catalina.startup.Catalina start
    INFOS: Server startup in 39768 ms

    Le icescrum.log me met la même chose.

    J’ai bien mis les options de CATALINA_OPTS et JAVA_OPTS dans tomcat.conf (équivalent paquagé de setenv.sh). Mon config.groovy est bien chargé et je ne vois aucune erreur d’accès. Seul le icescrum basedir n’est pas forcement au meilleur endroit (je pense à le changer) : /usr/share/tomcat/work/icescrum (le répertoire existe et appartient à tomcat).

    J’ai paramétré un accès à une base mysql avec la création d’un utilisateur dédié et d’une base en utf8. Je peux me connecter sans problème dessus mais aucune tables n’a été créé.

    J’ai cherché partout mais je ne trouve pas de solution. En cas de besoin je peux fournir d’autre fichier de log ou les fichiers de conf.

    Merci d’avance.

    #10997

    Nicolas Noullet
    Maître des clés

    Bonjour,

    Le problème vient du package EPEL qui n’est pas conforme au packaging standard de Tomcat.

    J’ai déjà analysé ce problème (en anglais par contre) :

    The NoClassDefFoundError exception indicates a Java classpath issue. Some libraries provided in the Tomcat classpath clash with the one used to compile iceScrum.

    It seems that the tomcat-lib-7.0.33-4.el6.noarch packages brings libraries that are not included in a regular Tomcat distribution:

    – tomcat-lib-7.0.33-4.el6.noarch content (according to http://rpm.pbone.net/index.php3/stat/4/idpl/26367526/dir/redhat_el_6/com/tomcat-lib-7.0.33-4.el6.noarch.rpm.html):
    annotations-api.jar
    catalina-ant.jar
    catalina-ha.jar
    catalina-tribes.jar
    catalina.jar
    commons-collections.jar
    commons-dbcp.jar
    jasper-el.jar
    jasper-jdt.jar
    jasper.jar
    log4j.jar
    tomcat-api.jar
    tomcat-coyote.jar
    tomcat-i18n-es.jar
    tomcat-i18n-fr.jar
    tomcat-i18n-ja.jar
    tomcat-jdbc.jar
    tomcat-jsp-2.2-api.jar
    tomcat-juli.jar
    tomcat-servlet-3.0-api.jar
    tomcat-util.jar

    – apache-tomcat-7.0.33 regular binary release (apache-tomcat-7.0.33.tar.gz), lib folder:
    annotations-api.jar
    catalina-ant.jar
    catalina-ha.jar
    catalina-tribes.jar
    catalina.jar
    ecj-3.7.2.jar
    el-api.jar
    jasper-el.jar
    jasper.jar
    jsp-api.jar
    servlet-api.jar
    tomcat-api.jar
    tomcat-coyote.jar
    tomcat-dbcp.jar
    tomcat-i18n-es.jar
    tomcat-i18n-fr.jar
    tomcat-i18n-ja.jar
    tomcat-jdbc.jar (this one must be removed, as indicated in the install guide: https://www.icescrum.com/documentation/install-guide/#software-requirements_3)
    tomcat-util.jar

    Apache « commons » libraries are already included in the iceScrum war. If, as I assume, they are also provided in your Tomcat classpath (through commons-dbcp.jar or commons-pool.jdbc) then this is likely to be the cause of the current error. I don’t understand why the tomcat-lib package would not be consistent with the Tomcat binary release (which is the target environment for iceScrum), but if it is the case then I am afraid that other classpath conflicts may happen.

    La solution consiste à retirer les bibliothèques commons-*.jar du classpath de Tomcat.

    #11000

    Kagilum
    Maître des clés

    Bon j’ai fini par trouver une solution simple et fonctionnel. J’avais déjà vu quelque chose de similaire hier mais j’avais pas tilté :

    Sur centos 6, il y a une dépendance sur jakarta-commons-pool. Si on installe ce package, il n’est pas rajouté par défaut dans les librairies utilisable par tomcat 7.

    La solution est donc :

    cd /usr/share/tomcat/lib && ln -s /usr/share/java/jakarta-commons-pool.jar commons-pool.jar

    Pour info sur centos 7, le package s’appel apache-commons-pool.

    Merci pour le coup de main

    #11001

    Nicolas Noullet
    Maître des clés

    Content que ça fonctionne !

    Et merci pour vos retours, je pense qu’ils seront utiles à d’autres utilisateurs.

4 sujets de 1 à 4 (sur un total de 4)

Le forum ‘Installation’ est fermé à de nouveaux sujets et réponses.