ClassCastException在Tomcat中部署了多个WAR

ClassCastException在Tomcat中部署了多个WAR,tomcat,classloader,cxf,wss4j,Tomcat,Classloader,Cxf,Wss4j,我在同一个Tomcat7实例上部署了两个WAR,它们都使用CXF+WSS4J。这两个应用程序通过SOAP进行通信,WSS4J拦截器处理SOAP头中的SAML断言。在隔离测试每个war时,一切正常,但当两个应用程序都部署并且一个应用程序向另一个应用程序发送SOAP消息时,我收到以下ClassCastException: java.lang.ClassCastException: org.apache.ws.security.WSDocInfo cannot be cast to org.apach

我在同一个Tomcat7实例上部署了两个WAR,它们都使用CXF+WSS4J。这两个应用程序通过SOAP进行通信,WSS4J拦截器处理SOAP头中的SAML断言。在隔离测试每个war时,一切正常,但当两个应用程序都部署并且一个应用程序向另一个应用程序发送SOAP消息时,我收到以下ClassCastException:

java.lang.ClassCastException: org.apache.ws.security.WSDocInfo cannot be cast to org.apache.ws.security.WSDocInfo
对我来说,这意味着一个类加载器问题,但具体是什么我无法理解。每个应用程序在各自的WEB-INF/lib文件夹中都有自己的WSS4J副本,我在Tomcat的公共库中没有看到任何WSS4J库

在生产环境中,这两个应用程序很可能永远不会使用同一个JVM,更不用说在同一个Tomcat实例中了,但是当我了解到这个问题的本质时,我会感觉更舒服。它还有助于从开发中的同一个Tomcat实例启动这两个应用程序。有人知道问题可能是什么吗

更新1:
我将每个war部署在单独的Tomcat实例中,它们都使用相同的JVM,ClassCastException消失。一定是Tomcat类加载时我不理解的东西?

来自WSS4J问题跟踪器:

STRTransform JCE provider抛出java.lang.ClassCastException:org.jcp.xml.dsig.internal.dom.DOMSubTreeData与Websphere中的javax.xml.crypto.OctetStreamData不兼容

受影响版本:1.6


点击WSS4J问题跟踪器中的…

STRTransform JCE provider抛出java.lang.ClassCastException:org.jcp.xml.dsig.internal.dom.DOMSubTreeData与Websphere中的javax.xml.crypto.OctetStreamData不兼容

受影响版本:1.6


单击…

Webapps应该有独立的类加载器。是否有stacktrace?Web应用程序应该有独立的类加载器。有痕迹吗?