1

注意:这不是交叉发布,提出不同的问题(在 webapp 之间共享对象时相关的 ClassCastError

我有两个 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(我的结构中必须,不能更改),就会出现问题。还有什么提示。谢了。

4

1 回答 1

2

我猜是时间问题。也许在初始化 ServletContext A 并尝试获取 ServletContext B 时,ServletContext B 尚未初始化/部署。

为了证明这一点,请在 servlet doGet 中尝试另一个测试,并在您确定两个 webapp 都正确部署时调用它

于 2013-03-28T05:19:56.380 回答