如何使用 Spring Ws marshall 调用 Paypal ws?

Posted

技术标签:

【中文标题】如何使用 Spring Ws marshall 调用 Paypal ws?【英文标题】:How can I call Paypal ws with Spring Ws marshall? 【发布时间】:2012-09-20 03:04:07 【问题描述】:

我在使用 paypal ws 时遇到了一些问题,因为它们必须包含自定义 http 标头。

这是 wsdl:

https://svcs.sandbox.paypal.com/AdaptiveAccounts/API_operation?wsdl

我下载了他们的 API,我有 Marshall 的 java 类,但我不知道如何包含标题。

在soapUi 中,我可以包含标题并在Raw 选项卡中查看生成的内容,例如:

POST https://svcs.sandbox.paypal.com/AdaptiveAccounts HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "urn:GetVerifiedStatus"
X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T
X-PAYPAL-SECURITY-PASSWORD: 13XXXXX113
X-PAYPAL-DEVICE-IPADDRESS: 127.0.0.1
X-PAYPAL-MESSAGE-PROTOCOL: SOAP11
X-PAYPAL-OPERATION-NAME: GetVerifiedStatus
X-PAYPAL-SECURITY-SIGNATURE: A8opbtJy-VMKZ8uQWERT5i54.3GnZA1SCkKHdo4sRg7ep4pSMrq6hZ3Lx
X-PAYPAL-SANDBOX-EMAIL-ADDRESS: abcdef_1348660087_biz@hotmail.com
X-PAYPAL-SECURITY-USERID: abcdef_1348660087_biz_api1.hotmail.com
User-Agent: Jakarta Commons-HttpClient/3.1
Host: svcs.sandbox.paypal.com
Content-Length: 631

我尝试将它们作为 bean webServiceTemplate 的属性包含到我的 ws-config.xml 中,并且在调用 webServiceTemplate.marshalSendAndReceive 时尝试使用 callBackFunction 但它从来没有成功

谢谢!

【问题讨论】:

【参考方案1】:

这些 SO 帖子 How to access HTTP headers in Spring-ws endpoint? 和 Setting a custom HTTP header dynamically with Spring-WS client 将向您展示如何添加自定义 HTTP 标头。然后,您所要做的就是添加 PayPal 特定的。

【讨论】:

以上是关于如何使用 Spring Ws marshall 调用 Paypal ws?的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring MVC 控制器中注入 Jaxb2Marshaller

如何在一个Jaxb2Marshaller中处理更多的WSDL?

Spring-WS WS-Security LDAP 身份验证

来自 WSDL 的 Spring-ws 客户端

如何更改Spring-WS的“SOAP-ENV”默认前缀

java 如何统计客户端调wsdl接口的响应时间