我有一个tomcat服务器有两个webapps(foo和bar),它们具有相同的部署战。部署使用标准的Spring/Hibernate设置。我认为这两个webapps可以启动并完全独立运行,但情况并非如此 - webapp foo加载正常,但webapp bar有一些奇怪的行为 - 就好像它使用的是来自webapp的一些相同的bean FOO。例如,当bar启动时(第二个webapp启动),c3p0会抱怨它已经被注册 - 可能是在webapp foo中。再次,我试图让这两个webapps完全独立,这样两个c3p0/hibernateSessionFactory bean就不应该彼此了解。多个Spring根WebApplicationContexts
在做一些研究时,我被引导认为在这两个webapps中都使用了相同的Spring根WebApplicationContext。如果是这样的话,我怎样才能让每个webapp(在同一个tomcat服务器上)完全独立于另一个?还有什么可能导致这个问题?从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>
“抱怨它已经注册”是什么意思?例外?如果是这样,请告诉我们这个例外。 – skaffman 2010-12-02 10:56:40
在日志中发出警告,说“c3p0已经被注册 - 这可能是由于上下文不能正确卸载并且可能导致内存泄漏” 我会在一个位置得到确切的日志消息 – Keith 2010-12-02 16:32:36