我有一个来自 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>
Headers:
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 特有的。都是标准的 JAX-WS。
您可以使用的操作属性@WebMethod http://docs.oracle.com/javaee/5/api/javax/jws/WebMethod.html用于设置 SOAP 操作的注释。例如
@WebMethod(operationName = "TestOperation", action="http://example.org/TestOperation")
如果您正在使用wsimport http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html要从 WSDL 生成工件,您应该已经在您的@网络服务 http://docs.oracle.com/javaee/5/api/javax/jws/WebService.html带注释的接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)