在两个WAR之间共享应用程序上下文?
|
有没有办法在两次部署的战争之间共享应用程序上下文?一战需要连接另一战的服务,我不知道从哪里开始。
没有找到相关结果
已邀请:
7 个回复
皇小福另届
糕泰灌
其中beanRefContext.xml包含:
这使用Spring ContextSingletonBeanFactoryLocator公开并共享父上下文(在本例中,使用名称\“ sharedContext \”)。当第一个WAR引用共享上下文时,它将被延迟加载。 您在共享上下文中引用的任何bean都必须对所有WAR都可访问,这意味着它们不能从特定WAR中的WEB-INF / class或WEB-INF / lib加载。必须使用EAR文件或通过将包含bean(和依赖项)的jar放在Tomcat共享的“ lib \”文件夹($ CATALINA_HOME / lib)中来共享它们,这是我们团队所做的。 合理的警告是,如果使用这种方法,则大多数JAR可能位于共享的lib文件夹中,而不是单个webapp中。对于我们的项目,这是有道理的,因为大多数Web应用程序共享和访问相同的后端服务。 由于顽固的Tomcat开发人员可能会反对将大量代码放入Tomcat共享的lib目录中,因此我仅列举一些其他建议的答案可能不起作用的原因。 对每个WAR使用单独的应用程序上下文将意味着具有多个数据库连接池,每个WAR使用一个连接池,并对每个WAR单独进行昂贵的Hibernate SessionFactory初始化,这会增加服务器启动时间和内存消耗。更一般而言,它不允许在同一Tomcat中运行的Web应用程序之间共享共享后端服务的状态。 至少在我们的情况下,将持久性代码放入单独的WAR中并使用REST调用对开发人员来说是完全不方便的,并且与直接调用共享Bean相比,这增加了到达数据库的路径长度。
臀夯脖锑
阀傻
芳菱挨啡
替秀宝
乏摩纶誊伟