Java EAR中的WAR-jboss-deployment-structure.xml被忽略

Java EAR中的WAR-jboss-deployment-structure.xml被忽略,java,jboss,jboss7.x,jboss-eap-6,Java,Jboss,Jboss7.x,Jboss Eap 6,我的EAR由一个普通jar、一个EJB jar和一个WAR组成。WAR使用spring上下文,因此它依赖于META-INF目录中的spring命名空间描述文件 我的WAR/jboss-deployment-structure.xml包含 <module name="org.springfw"> <imports> <include path="META-INF**" /> <include path="org**"

我的EAR由一个普通jar、一个EJB jar和一个WAR组成。WAR使用spring上下文,因此它依赖于META-INF目录中的spring命名空间描述文件

我的WAR/jboss-deployment-structure.xml包含

<module name="org.springfw">
    <imports>
        <include path="META-INF**" />
        <include path="org**" />
    </imports>
</module>

如果我将EAR和WAR分开部署,应用程序就可以完美地工作

通过在EAR中部署相同的WAR,它会失败,并出现ClassNotFoundException(org.spring…ContextLoaderListener)

我编辑了WAR/META-INF/Manifest.MF并添加了“Dependencies:org.springfw”,应用程序在启动时失败,原因是:

找不到XML架构命名空间的Spring NamespaceHandler[

这意味着类可用,但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>

您尝试过使用模块描述符吗?

部署结构.xml
中指定

如前所述,这个xml应该在顶级ear meta-Inf中

<jboss-deployment-structure>
 <sub-deployment name="myapp.war">
   <dependencies>
     <module name="org.javassist" export="true" />
     <module name="org.apache" export="true"/>
     <module name="org.antlr" export="true"/>
     <module name="org.dom4j" export="true"/>
     <module name="org.apache" export="true"/>
     <module name="org.hibernate" export="true"/>
   </dependencies>
 </sub-deployment>


另请参见

部署结构必须位于顶级META-INF文件夹中,因此对于EAR,它应该位于EAR的META-INF中。如果我理解正确,Jboss只允许EAR中有一个deployment-structure.xml?也许它会忽略它,我对类似问题的解决方案是在Jboss部署中向模块添加依赖项-export=“true”的ear结构(顶级部署)。其他信息:在我的arquillian测试中,为了能够使用该模块,我必须在构建WebArchive()时添加以下内容:war.setManifest(new StringAsset(“Dependencies:some.thing\n”);我在问题中添加了模块描述符,但META-INF不可见。