J'ai un serveur Tomcat avec deux webapps (foo et bar) qui ont une guerre de déploiement identique. Le déploiement utilise l'installation Spring/Hibernate standard. J'ai supposé que ces deux webapps démarreraient et fonctionneraient complètement indépendamment l'une de l'autre, mais ce n'est pas le cas - fappe de foo de webapp normalement, mais la barre de webapp a un comportement étrange - c'est comme si elle utilisait certains des mêmes beans de webapp foo. Par exemple, quand la barre démarre (la deuxième webapp démarre), c3p0 se plaint qu'elle est déjà enregistrée - probablement dans webapp foo. Encore une fois, j'essaie de rendre les deux webapps complètement indépendants, de telle sorte qu'il ne devrait pas y avoir moyen pour les deux beans c3p0/hibernateSessionFactory de se connaître les uns les autres.racine de printemps WebApplicationContexts
En faisant des recherches, j'ai été amené à croire que le même WebApplicationContext de Spring Spring est utilisé dans les deux webapps. Si tel est le cas, comment puis-je rendre chaque webapp (sur le même serveur Tomcat) complètement indépendant l'un de l'autre? Y a-t-il autre chose qui pourrait causer ce problème?
extraits pertinents de web.xml:
<web-app>
<context-param>
<param-name>org.hibernate.tags.sessionFactory</param-name>
<param-value>hibernate/SessionFactory</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/context/*Context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>fooServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
Que signifie "se plaint qu'il est déjà enregistré"? Une exception? Si oui, montrez-nous l'exception. – skaffman
un avertissement dans le journal qui indique que quelque chose comme "c3p0 a déjà été enregistré - cela peut être dû à un contexte ne déchargeant pas correctement et peut entraîner une fuite de mémoire" je vais obtenir le message de journal exact dans un peu – Keith
l'avertissement exact est: com.mchange.v2.c3p0.management.ActiveManagementCoordinator: 56 - Un mbean C3P0Registry est déjà enregistré. Cela signifie probablement qu'une application utilisant c3p0 n'a pas été déployée, mais toutes les PooledDataSources n'ont pas été fermées avant le déploiement. Cela peut entraîner des fuites de ressources au fil du temps. Veuillez prendre soin de fermer toutes les PooledDataSources. – Keith