je suis confronté à une exception que je ne comprends...

cancel
Showing results for 
Search instead for 
Did you mean: 
liotier
Member II

je suis confronté à une exception que je ne comprends...

Bonjour, je suis confronté à une exception que je ne comprends pas - elle a lieu au démarrage de Tomcat lorsque Alfresco est déployé :

Oct 27, 2006 6:56:42 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive alfresco.war
org.apache.commons.logging.LogConfigurationException: java.lang.ExceptionInInitializerError (Caused by java.lang.ExceptionInInitializerError)

Je suis plutôt nouveau dans l'univers Java. Je crois comprendre que ça a quelque chose à voir avec Log4J mais je n'en sais pas plus.

J'utilise Debian avec les paquets suivants :

- Tomcat 5.5.20-1
- Liblog4j 1.2.13-1
- Alfresco Community war 1.4.0
- Sun Java 5 JRE & JDK 1.5.0-08-1

D'après ce que j'ai lu un peu partout ces versions ont l'air sans problèmes particuliers et sont censées fonctionner ensemble.

J'ai essayé avec les versions 1.3 et 1.2.1 d'Alfresco et j'ai le même problème. Il semble donc que ce ne soit pas un problème d'Alfresco mais plutôt de mon installation Tomcat/Log4J.

Quelqu'un saurait-il me mettre sur la piste d'une solution ?


Le log complet du démarrage de Tomcat avec Alfresco est ci-dessous :

Using CATALINA_BASE: /var/lib/tomcat5.5
Using CATALINA_HOME: /usr/share/tomcat5.5
Using CATALINA_TMPDIR: /var/lib/tomcat5.5/temp
Using JRE_HOME: /usr/lib/jvm/java-1.5.0-sun
Using Security Manager
Oct 27, 2006 6:56:41 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.5.0-sun-1.5.0.08/jre/lib/i386/client:/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/jre/lib/i386:/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/jre/../lib/i386
Oct 27, 2006 6:56:41 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8180
Oct 27, 2006 6:56:41 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 940 ms
Oct 27, 2006 6:56:41 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Oct 27, 2006 6:56:41 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5
Oct 27, 2006 6:56:41 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Oct 27, 2006 6:56:42 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive alfresco.war
Oct 27, 2006 6:56:42 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive alfresco.war
org.apache.commons.logging.LogConfigurationException: java.lang.ExceptionInInitializerError (Caused by java.lang.ExceptionInInitializerError)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:538)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
at org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:380)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4114)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.access$0(ContainerBase.java:743)
at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:143)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:737)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:698)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.ExceptionInInitializerError
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:102)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
… 29 more
Caused by: java.security.AccessControlException: access denied (java.io.FilePermission alfresco.log write)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:206)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:123)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:500)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:406)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:432)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
… 36 more
Oct 27, 2006 6:56:42 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8180
Oct 27, 2006 6:56:43 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Oct 27, 2006 6:56:43 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/28 config=null
Oct 27, 2006 6:56:43 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Oct 27, 2006 6:56:43 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1860 ms
10 Replies
michaelh
Active Member

Re: je suis confronté à une exception que je ne comprends...

Bonjour,

Question tout bête … tomcat a les droits d'écriture sur le système de fichier ? Parce que là le serveur essaie de créer le fichier "alfresco.log" (à l'endroit depuis lequel on lance tomcat par défaut il me semble), et il échoue lamentablement …

Caused by: java.security.AccessControlException: access denied (java.io.FilePermission alfresco.log write)
P.S : C'est pas gentil de poster dans plein de forums en même temps Smiley Wink
liotier
Member II

Re: je suis confronté à une exception que je ne comprends...

Question tout bête … tomcat a les droits d'écriture sur le système de fichier ? Parce que là le serveur essaie de créer le fichier "alfresco.log" (à l'endroit depuis lequel on lance tomcat par défaut il me semble), et il échoue lamentablement …

Caused by: java.security.AccessControlException: access denied (java.io.FilePermission alfresco.log write)
J'avais loupé cette ligne… Effectivement ça sent le bête problème de permission. Je part là-dessus et je vous tiens au courant. Reste à trouver de quel fichier il s'agit : un 'chown tomcat55:root /var/log/alfresco.log' n'a pas suffit et le contenu de /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/log4j.properties est plutôt évasif à propos du chemin complet de ce fameux fichier de logs. Il me semble que c'est /var/log/alfresco mais "log4j.appender.File.DatePattern='.'yyyy-MM-dd" me fait penser que ça pourrait être autre chose…

###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
Bon, je continue à expérimenter et je vous tiens au courant.

P.S : C'est pas gentil de poster dans plein de forums en même temps Smiley Wink
Dans l'absolu oui, mais sachant que l'un des deux forums est en Anglais et l'autre en Français, et que je fais la traduction de l'un à l'autre en gardant les deux threads informés c'est plutôt du crucipostage utile non ?

En tout cas merci pour l'indice, je crois que ça me met sur la bonne voie.
michaelh
Active Member

Re: je suis confronté à une exception que je ne comprends...

P.S : C'est pas gentil de poster dans plein de forums en même temps Smiley Wink
Dans l'absolu oui, mais sachant que l'un des deux forums est en Anglais et l'autre en Français, et que je fais la traduction de l'un à l'autre en gardant les deux threads informés c'est plutôt du crucipostage utile non ?
Complètement d'accord, c'était juste pour montrer que je suivais Smiley Tongue
liotier
Member II

Re: je suis confronté à une exception que je ne comprends...

C'est peut-être un problème de permission un peu plus large que ça…

Dans /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/log4j.properties j'ai modifié la ligne suivante :

log4j.rootLogger=error, Console, File
en

log4j.rootLogger=error, Console
Et j'ai redémarré Tomcat. Comme prévu, l'erreur d'écriture vers le fichier de log a disparu. Youpi.

Mais :

18:27:23,887 FATAL [webapp.webxml.WebXmlParser] Unable to parse web.xml
java.security.AccessControlException: access denied (java.net.SocketPermission java.sun.com:80 connect,resolve)
Et tout un tas d'exceptions qui en découlent probablement.

Donc il semble que l'utilisateur tomcat55 (celui créé par le paquet Debian de Tomcat 5.5 et sous lequel tourne Tomcat) a quelques restrictions de permissions et pas seulement pour écrire ses logs…

Pourtant un 'locate web.xml | xargs ls -al' m'apprend que tous les fichiers web.xml du système (une douzaine en comptant les exemples de la doc) sont en permissions 644… Alors pourquoi on lui interdit d'en un ?

Bref je patauge mais je vais bien finir par comprendre…
liotier
Member II

Re: je suis confronté à une exception que je ne comprends...

Bizarrement, Alfresco n'apparaît pas dans le Tomcat Manager à  http://localhost:8180/manager/html
liotier
Member II

Re: je suis confronté à une exception que je ne comprends...

Et Tomcat démarre bien malgré la présence d'Alfresco et de ses exceptions diverses et variées.
unknown-user
Active Member

Re: je suis confronté à une exception que je ne comprends...

Bonjour, j'ai le même problème avec la même configuration
j'ai d'abord viré la sécurité dans /etc/default/tomcat5.5
TOMCAT5_SECURITY=no
j'ai ensuite modifié le fichier /var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/log4j.properties comme ça :
log4j.appender.File.File=/var/log/tomcat5.5/alfresco.log
en relançant tomcat ça crée bien le fichier log, le problème c'est qu'il y a tout de suite 100 ko d'autres erreurs dedans du genre :
"Can't resolve reference to bean"
ça pourrait être une histoire de chemin à la base et provenir des spécificités de l'installation Tomcat de Debian ?
michaelh
Active Member

Re: je suis confronté à une exception que je ne comprends...

L'erreur "can't resolve to bean" est, de mémoire, le plus souvent liée à un problème de driver de base de données qui n'est pas présent dans le bon répertoire.

http://forums.alfresco.com/viewtopic.php?t=3739&highlight=resolve+reference+bean
Si vous utilisez MySQL, lisez bien le README pour les instructions concernant l'ajout du driver MySQL dans Tomcat.

Pour ce qui est des spécificités de la version tomcat de Debian, j'avoue que dans ma grande fainéantise j'utilise pour mes tests le bundle alfresco+tomcat qui permet une installation fonctionnelle en 5 minutes chrono Smiley Happy
liotier
Member II

Re: je suis confronté à une exception que je ne comprends...

De mon côté je n'ai toujours pas résolu mais je n'abandonne pas pour autant… Je posterai ici si je trouve la solution.