【问题标题】:Can a class in one WAR be referenced in web.xml of another WAR in the same EAR, in Wildfly 10?在 Wildfly 10 中,是否可以在同一 EAR 中的另一个 WAR 的 web.xml 中引用一个 WAR 中的类?
【发布时间】:2016-11-30 11:42:38
【问题描述】:

我有 2 个 .war 文件。

在第一场战争中,在 WEB-INF/classes/com/my 下有一个 BatchTriggerBuildServlet.class

在第 2 场战争中,我在其 web.xml 中有以下内容(在其 WEB-INF 中) (对战争 #1 中的一个类的引用):

<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>

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

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

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

【问题讨论】:

    标签: java jakarta-ee classloader wildfly ear


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      相关资源
      最近更新 更多