我有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 回答
ear-subdeployments-isolated
不适用于始终彼此隔离的Web模块 . 见Class Loading in WildFly .尝试将类及其依赖项移动到EAR / lib目录中的jar中 .