Java org.apache.cxf.binding.soap.SoapHeader不能强制转换为org.apache.cxf.binding.soap.SoapHeader
我在JBOSS EAP 6.2上安装了一个Web服务。当我想要获取SOAP头时出现问题 代码,其中引发异常:Java org.apache.cxf.binding.soap.SoapHeader不能强制转换为org.apache.cxf.binding.soap.SoapHeader,java,maven,jboss,soapheader,Java,Maven,Jboss,Soapheader,我在JBOSS EAP 6.2上安装了一个Web服务。当我想要获取SOAP头时出现问题 代码,其中引发异常: ArrayList<SoapHeader> hl = (ArrayList<SoapHeader>) wsctx.getMessageContext().get("org.apache.cxf.headers.Header.list"); String username = ""; String password = ""; for (
ArrayList<SoapHeader> hl = (ArrayList<SoapHeader>) wsctx.getMessageContext().get("org.apache.cxf.headers.Header.list");
String username = "";
String password = "";
for (int i = 0; i < hl.size(); i++) { //for(SoapHeader header : hl) gives this same exception
SoapHeader header = hl.get(i);
//here is fetching data from this header. Not important to this case.
}
例外信息是:
org.apache.cxf.binding.soap.SoapHeader cannot be cast to org.apache.cxf.binding.soap.SoapHeader
起初,我认为Maven的POM文件中的版本错误,因此:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-soap</artifactId>
<version>2.4.2</version>
</dependency>
org.apache.cxf
cxf rt绑定soap
2.4.2
但我认为它很管用
所以我的问题是:如何避免它?有人能帮我吗?谢谢可能存在间接依赖关系。您的一个模块或库也可能具有依赖关系
org.apache.cxf
尝试找出是否有多个版本。最简单的方法是检查所有目标dir并找到所有jar。然后比较版本并排除不正确的版本
<exclusions>
<exclusion>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-soap</artifactId>
<version>2.4.2</version>
</exclusion>
</exclusions>
org.apache.cxf
cxf rt绑定soap
2.4.2
另外,JBoss也可能以某种方式拥有该库。找到了解决方案,只需添加其他库,而不是通常的apache cxf绑定:
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-jaxws</artifactId>
<version>2.0.1.SP2</version>
</dependency>
<dependency>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-server</artifactId>
<version>4.2.0.Alpha1</version>
<scope>provided</scope>
</dependency>
org.jboss
jboss jaxws
2.0.1.SP2
org.jboss.ws.cxf
jbossws-cxf服务器
4.2.0.1
假如
我找不到正确的版本。我查看了,但只有指定的JBoss WS_CXF。也许我应该使用它而不是原始的apache库?是的,你是对的,但真正的解决方案是使用其他库:jboss cxf server。谢谢你的提示!
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-jaxws</artifactId>
<version>2.0.1.SP2</version>
</dependency>
<dependency>
<groupId>org.jboss.ws.cxf</groupId>
<artifactId>jbossws-cxf-server</artifactId>
<version>4.2.0.Alpha1</version>
<scope>provided</scope>
</dependency>