我的EAR由一個通用jar,一個EJB jar和一個WAR組成。 WAR使用spring上下文,所以它依賴於META-INF direcotry中的spring-namespace描述文件。EAR中的WAR - 忽略jboss-deployment-structure.xml
我WAR/JBoss的部署,structure.xml包含
<module name="org.springfw">
<imports>
<include path="META-INF**" />
<include path="org**" />
</imports>
</module>
如果我部署EAR和seperatly戰爭中,應用程序完美的作品。
通過在EAR內部部署相同的WAR,它會因ClassNotFoundException(org.spring ... ContextLoaderListener)而失敗。
好吧,我編輯WAR/META-INF/MANIFEST.MF,並添加 「依賴關係:org.springfw」,在應用程序啓動時失敗:
無法找到春天NamespaceHandler XML模式命名空間[http://www.springframework.org/schema/context]
這意味着類是可用的,但不是META-INF文件。總結:如果我在EAR中部署一個WAR,我仍然可以通過WAR的清單(工程,但不能導入META-INF目錄)導入模塊,但是WEB-INF/jboss- deployment-structure.xml將始終被忽略。
編輯:
模塊描述符是
<resource-root path="spring-context-3.2.10.RELEASE.jar">
<filter>
<include path="META-INF**" />
<include path="org**" />
</filter>
</resource-root>
部署結構必須在頂層META-INF文件夾,所以在EAR的情況下,它應該是在EAR的META-INF。 – cy3er 2014-10-01 08:57:42
如果我理解正確,Jboss只允許EAR中的一個deployment-structure.xml? – 2014-10-01 09:16:01
也許它會忽略它,[doc](https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7#ClassLoadinginAS7-JBossDeploymentStructureFile) – cy3er 2014-10-01 09:19:52