首页 文章

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

提问于
浏览
0

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

在战争#1中,在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]"

有没有办法让这个工作?提前致谢 .

1 回答

  • 2

    ear-subdeployments-isolated 不适用于始终彼此隔离的Web模块 . 见Class Loading in WildFly .

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

相关问题