【发布时间】:2013-08-01 23:39:27
【问题描述】:
我有一个来自我要连接的 WS 外部的 WSDL 文件。而且我正试图让它与 CXF 一起工作(与 JAX-WS 一起工作)。但我从其他系统收到错误。所以我决定看一下我们发送到该系统的数据,唯一的区别是 CXF 设置了空的 SOAPAction http 标头。
我读了一些书,看起来只有已知的解决方案直接指向 WSDL。但我已经这样做了。
有人知道这件事吗?
<bean id="object" class="xxx.XxxObject" factory-bean="objectFActory"
factory-method="create"/>
<bean id="objectFActory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="xxx.XxxObject"/>
<property name="wsdlLocation" value="http://blebleble"/>
<property name="address" value="http://blebleble"/>
<property name="username" value="user"/>
<property name="password" value="password"/>
<property name="properties">
<map>
<entry key="javax.xml.ws.session.maintain" value-type="java.lang.Boolean" value="true"/>
</map>
</property>
</bean>
标题:
POST /somepath HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Accept: */*
Authorization: Basic <randomhex>
SOAPAction: ""
User-Agent: Apache CXF 2.7.6
Cache-Control: no-cache
Pragma: no-cache
Host: somehost:8080
Connection: keep-alive
Content-Length: 2791
【问题讨论】:
-
唯一的区别是 CXF 设置了空的 SOAPAction http header。有效的请求(我假设为 JAX-WS)根本没有设置 SOAPAction HTTP 标头,还是将其设置为(非空)值?
-
JaxWS: SOAPAction: "获取" CXF: SOAPAction: ""
-
唯一的方法可以帮助您了解问题的更多详细信息、与 cxf 一起使用的代码、wsdl 文件、您看到的标题...
-
JAX-WS 是规范。参考实现称为 JAX-WS RI(或 Metro)
标签: java web-services jax-ws cxf