3

我想使用 spring 框架和 spring-ws 来发送/接收 SOAP 消息。但是,我看不到如何发送包含多个部分的消息。

<message name="getInput">
    <part name="authenticationKey" type="FPDS:userAuthenticationKeyType"/>
    <part name="awardID" type="FPDS:awardIDType"/>
</message>

http://www.fpds-ng.com/wiki/index.php/FPDS-NG

但是我在 api 中看不到这样做的方法,除了自己构建整个多部分消息,而对于我想传递的部分,我有 JAXB 对象。谢谢,汉克

4

2 回答 2

2

我能够通过使用 CXF(使用 wsdl2java)而不是 spring-ws 的默认 JAXB 行为来使其工作。CXF 似乎支持多部分消息,并且 CXF 可以与 Spring WS(以及 Boot)一起使用。

于 2015-06-15T19:30:08.087 回答
0

我也有同样的问题。我没有找到一种使用 spring-ws 来使用这种 Web 服务的方法,但我确实找到了WS-I Basic Profile 规范中相关段落的链接,该链接说主体中最多可以有一个部分。因此,我计划使用这些信息来尝试说服创建服务的人将服务更改为仅在主体中包含一个部分,以符合 WS-I Basic Profile 规范,从而提高互操作性。

可能有助于说服服务开发人员进行更改的另一点是,由于 WSDL 中有多个部分,尝试在 SOAPUI 中验证他们的任何示例请求消息实际上会产生错误:“第 -1 行:DocLiteral 消息必须包含 1 个正文零件定义"

请记住,尽管 WS-I Basic Profile 规范比 WSDL 模式更严格,所以虽然此服务可能违反 WS-I Basic Profile 规范,但它可能仍会根据 WSDL 模式进行验证。然而,遵守 WS-I Basic Profile 规范很重要,因为根据 Wikepedia 的说法,许多常见的 WS 工具和框架将只支持属于 WS-I Basic Profile 规范的服务。

于 2013-03-18T19:36:49.363 回答