嗨 StackOverflow 社区,
我有一个已部署到 JBoss Wildfly 8.2 实例的 WAR。同样在 Wildfly,我创建了两个模块:
- 第三方 JMS JCA 适配器模块,
- 和一个模型模块 (model.jar),其中包含用于在 JMS 代理和 WAR 之间进行通信的消息类
WAR 有一个 jboss-deployment-structure.xml,它声明了对 JCA 模块的依赖:
<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="com.thirdparty.mq.ra" slot="main"/>
<module name="com.company.model" slot="main">
</dependencies>
</deployment>
</jboss-deployment-structure>
WAR 将 model.jar 文件打包在其 WEB-INF/lib 文件夹中。
JMS 模块依赖于模型模块:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.thirdparty.mq.ra">
<resources>
<resource-root path="."/>
<resource-root path="thirdparty-jms-provider.jar"/>
...
<resource-root path="thirdparty-lib.jar"/>
</resources>
<dependencies>
<module name="com.company.model"/>
<module name="javax.api"/>
<module name="javax.jms.api"/>
<module name="javax.transaction.api"/>
<module name="javax.management.j2ee.api"/>
<module name="javax.resource.api"/>
<module name="org.jboss.invocation"/>
<module name="org.jboss.remote-naming" optional="true"/>
<module name="org.slf4j"/>
</dependencies>
</module>
运行时,出现以下异常:
Caused by: java.lang.ClassCastException: com.company.model.web.dto.WebAuthenticationResponse cannot be cast to com.company.model.web.dto.WebAuthenticationResponse
我怀疑这是一个类加载器问题。我必须在 module.xml 或 jboss-deployment-structure.xml 文件中指定一些额外的信息吗?
谢谢你的帮助!