就应用程序上下文层次结构而言,我认为从Spring 2.x到3.x都没有任何变化。
据我所知,配置的问题是你正在加载
applicationContext.xml加载到中的那个
sharedContext,每个webapp也正在加载中,因为它在中提到了
context-param contextConfigLocation。
由于同一文件被加载两次,因此一次在父上下文中,一次在Web应用程序的根上下文中进行,因此存在副本以及子上下文,即。webapp使用其创建的应用程序,而不使用父级应用程序中创建的应用程序。
更改配置,以免再次加载相同的bean xml两次,它应该可以正常工作。你可以使用
parentContextKey并且
contextConfigLocation两者都不会加载相同的文件。
更新:除了上述内容之外,你还需要检查共享jar是否对战争可见(在允许共享同一实例的情况下可见)。我试图从博客中运行该示例,但是当我将其部署为Java EE6应用程序时,该示例对我不起作用,这是因为战争中耳罩可见性的规则从Java EE5更改为EE6。当我在Glass Fish的兼容模式下运行示例时,一切都会按预期进行。
因此,请检查你的EAR / WAR,以查看你正在运行的servlet规范,并确保你的服务器正在相应地部署应用程序。



