嗨StackOverflow社區,爲什麼我的JBoss模塊拋出ClassCastException?
我有一個部署到JBoss Wildfly 8.2實例的WAR。此外,在Wildfly,我已經創建了兩個模塊:
- 第三者JMS JCA適配器模塊,
- 和模型模塊,包含用於JMS代理和WAR之間通信消息類別(model.jar)
戰爭已經JBoss的部署,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>
戰爭已經在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文件中指定?
感謝您的幫助!
這可能是您的類路徑中的兩個(或更多)版本com.company.model.web.dto.WebAuthenticationResponse之間的衝突。你能檢查你的類路徑中有什麼嗎? – jHilscher
如何檢查Wildfly類路徑? Wildfly在運行時加載類,所以它們不會在執行命令中...? –