在 Wildfly 10 中,一个 WAR 中的 class 可以在同一 EAR 中另一个 WAR 的 web.xml 中引用吗?

Can a class in one WAR be referenced in web.xml of another WAR in the same EAR, in Wildfly 10?

我的耳朵有 2 个 .war 个文件。

在war#1中,在WEB-INF/classes/com/my下面有一个BatchTriggerBuildServlet.class

在 war #2 我的 web.xml 中有以下内容(在其 WEB-INF 中) (对 war #1 中的 class 的引用):

<web-app id="WebApp">
    <!-- other stuff -->
    <servlet>
        <servlet-name>BatchTriggerBuildServlet</servlet-name>
        <display-name>BatchTriggerBuildServlet</display-name>
        <servlet-class>com.my.BatchTriggerBuildServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>BatchTriggerBuildServlet</servlet-name>
        <url-pattern>/BatchTriggerBuildServlet</url-pattern>
    </servlet-mapping>
    <!-- other stuff -->
</web-app>

这是在 Wildfly 10 中部署的。 我在包含 .ear 的 META-INF 文件夹中也有一个 jboss-deployment-structure.xml,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
        <!-- Make sub deployments NOT isolated by default, so they can see each others classes without a Class-Path entry -->
    <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</jboss-deployment-structure>

这是合法的吗?因为当我尝试部署耳朵时,我得到了上述 class 的 ClassNotFoundException,以及它

的消息
"Failed to start service ... from [Module "<my ear name>.<my war #2 name>:main" from Service Module Loader]"

有没有办法让它工作? 提前致谢。

ear-subdeployments-isolated 不适用于 Web 模块,它们始终相互隔离。参见 Class Loading in WildFly

尝试将 类 及其依赖项移动到 EAR/lib 目录中的 jar 中。