2009-08-13 7 views
1

J'ai des problèmes pour démarrer deux webapps struts2 différentes dans Tomcat. Mais chacune des webapps démarre correctement lorsqu'elles sont placées indépendamment dans le dossier webapps de tomcat.Deux webapps struts2 ne peuvent pas démarrer ensemble

je reçois ce qui suit dans catalina.out logs-

GRAVES: Erreur FilterStart 13 août 2009 15:17:45 org.apache.catalina.core.StandardContext commencent GRAVES: Contexte [/ admin ] démarrage a échoué en raison d'erreurs précédentes

Environnement- Java1.6, Tomcat6, Struts2.1.6, FC10

Les webapps sont "admin" et "utilisateur". Ces deux webapps contiennent respectivement des fichiers struts2 dans leur répertoire WEB-INF/lib.

web.xml contient les éléments suivants dans les deux webapps-

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Un point à noter que toujours le webapp « admin » ne parvient pas à charger avec l'erreur ci-dessus. Si je supprime la webapp «utilisateur» du dossier webapps, la webapp «admin» arrive très bien.

J'ai également observé une chose plus wrt struts2 filtre dans web.xml- Si je supprime le filtre struts2 de web.xml dans l'une des webapps, les deux webapps commencent sans aucune erreur dans les journaux (mais bien sûr, je ne sera pas en mesure d'utiliser des entretoises dans la webapp où le filtre est retiré).

J'ai aussi essayé de déplacer le pot de struts2 à tomcat lib et de les retirer de webapps individuelles, mais même problème existe ..

Toutes les idées ce qui pose ce problème?

Mises à jour: Cela fonctionne étrangement bien sur Ubuntu OS. Mais le problème persiste sur FC10 et OpenSolaris.

+0

Avez-vous un peu plus d'informations d'enregistrement, de préférence au niveau DEBUG ou quelque chose comme ça? Le problème ressemble un peu à un problème de classpath, ou peut-être à un problème de log4j si vous l'utilisez mais de ce contexte c'est impossible à dire. – extraneon

+0

Merci pour votre réponse. J'avais activé les journaux de débogage de Struts2 et je n'avais aucune information utile. Maintenant, j'ai activé les journaux de débogage tomcat pour voir si cela me donne des informations utiles. Oui, j'utilise log4j dans les deux webapps. Pouvez-vous expliquer pourquoi vous spéculez, cela pourrait être un problème log4j? – Keshav

+0

Y a-t-il autre chose dans vos fichiers journaux? Parfois, le problème peut être lié à une erreur lancée plus tôt au démarrage. Nous avons plusieurs applications Struts 2, environ 8 par instance sur 3 instances de tomcat et tout fonctionne bien. Essayez de dépanner un peu plus et publiez vos résultats. – Allan

Répondre

0

Merci alzoid, extraneon et Peter.

J'avais négligé une exception arrivant sur le fichier localhost..log. Je pensais que j'avais redirigé tous les logs de Struts vers un fichier journal différent mais que j'avais oublié de mentionner le paquet opensymphony dans le fichier de propriétés log4j. En arrivant au problème original - il y avait un problème de chargeur de classe avec xerces-impl jar et un autre fichier jar appartenant à struts2. Ainsi, lorsque j'ai supprimé le fichier xerces-impl du répertoire WEB-INF/lib dans les deux applications, tout a bien fonctionné!

1

J'ai eu un problème similaire avec Spring et en utilisant cette classe d'auditeur dans web.xml:

org.springframework.web.util.Log4jConfigListener

Voir la documentation du printemps Log4jWebConfigurer, qui dit que vous avez besoin propriétés uniques « app web root » défini par web-app, donc je devais avoir une section comme celui-ci dans chaque web.xml:

<!-- used by Log4jConfigListener --> 
<context-param> 
    <param-name>webAppRootKey</param-name> 
    <param-value>myappname.root</param-value> 
</context-param> 

utilisez-vous du printemps? Si ce n'est pas l'espoir que cela vous donne quelques indices, je ne sais pas grand-chose sur Struts2 peut-être que cela fait quelque chose de similaire. Faites-moi savoir comment ça se passe!

+0

Merci pour votre réponse. Je n'utilise pas le framework Spring. Mais, vous pourriez m'avoir indiqué dans la bonne direction - log4j. J'ai même essayé de supprimer log4j.properties et log4j jars des deux applications Web pour éliminer le log4j de l'équation, mais le résultat était le même qu'avant ... cela ne fonctionnait pas. – Keshav

0

Nous avons rencontré le même problème lors du lancement de deux applications Maven Struts2 sur le même serveur.Le xerces lib était le problème que nous avons ajouté xalan dans les pom.xml dépendances et tout a bien fonctionné:

<dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.1</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
Questions connexes