注意:这不是交叉发布,提出不同的问题(相关的ClassCastError when share objects between webapp)
我有两个webapps在同一个tomcat实例上的两个不同的上下文中运行,当第二个应用程序试图获取第一个应用程序上下文时,无论我输入的是什么名称,该对象都是相同的上下文,这是错误的。
public void contextInitialized(ServletContextEvent sce) {
ServletContext context= sce.getServletContext().getContext("/bling");
ServletContext context2= sce.getServletContext().getContext("/bla");
对象context和context2都有这个对象id org.apache.catalina.core.ApplicationContextFacade@4376。
我正在使用tomcat7。有小费吗? TKS
更新 提出所有好建议。 如果第二个webapps(上面的代码片段)部署在服务器的ROOT(必须在我的结构中,不能更改),就会出现问题。更多提示。 TKS。
答案 0 :(得分:2)
我猜这是一个时间问题。也许当初始化ServletContext A并尝试获取ServletContext B时,ServletContext B尚未初始化/部署。
要证明这一点,请在servlet doGet中尝试另一个测试,并在确定两个webapps都已正确部署时调用它