java webapp,getContext总是返回同一个对象

标签 java tomcat web-applications

注意:这不是交叉发帖,问不同的问题(相关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。有小费吗?谢谢

更新: 感谢所有好的建议。 如果第二个 webapps(上面的代码片段所在的位置)部署在服务器的 ROOT(我的结构中必须的,不能更改),就会发生问题。任何更多的提示。谢谢。

最佳答案

我猜这是一个时间问题。也许当 ServletContext A 被初始化,并试图获取 ServletContext B 时,ServletContext B 还没有被初始化/部署。

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

关于java webapp,getContext总是返回同一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15674725/

相关文章:

java - 如何使用 Maven 在 jar 子文件夹中创建具有依赖项的可执行 jar?

java - 在Java中打印线程实例是什么意思?

java - Tomcat 8 与 Maven 的集成

Tomcat 取消部署不会删除 Web 应用程序工件

javascript - 以问号开头的html标签?

java - Web 服务前面的数据库级别的数据完整性

JavaFX 从另一个线程更新 UI

java - Tomcat 服务器在添加 GET 和 POST 时退出工作

Javascript:如何在不刷新页面的情况下更改地址栏中的 URL?

java - 如何在 Android 上提供像按钮一样的 imageview 点击效果?