Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在soap spring ws中发送多部分消息?_Soap_Spring Ws - Fatal编程技术网

如何在soap spring ws中发送多部分消息?

如何在soap spring ws中发送多部分消息?,soap,spring-ws,Soap,Spring Ws,我想使用spring框架和spring ws来发送/接收SOAP消息。但是,我不知道如何发送包含多个部分的消息 <message name="getInput"> <part name="authenticationKey" type="FPDS:userAuthenticationKeyType"/> <part name="awardID" type="FPDS:awardIDType"/> </message> 但是我

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

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

但是我在api中看不到实现这一点的方法,除了自己构造整个多部分消息之外,然而,对于我想要传递的部分,我有JAXB对象。 谢谢
汉克,我也有同样的问题。我没有找到一种使用SpringWS的方式来使用这样的web服务,但我确实找到了中相关段落的链接,其中说身体中最多可以有一个部分。因此,我计划使用这些信息来尝试说服创建服务的人将服务更改为主体中只有一个部分,以符合WS-I基本概要规范,从而提高互操作性

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


请记住,WS-I基本配置文件规范比WSDL模式更严格,因此尽管此服务可能违反WS-I基本配置文件规范,但它仍可能根据WSDL模式进行验证。然而,遵守WS-I基本概要规范很重要,因为许多常见的WS工具和框架只支持属于WS-I基本概要规范的服务。

我能够通过使用CXF(使用wsdl2java)而不是spring WS的默认JAXB行为来实现这一点。CXF似乎支持多部分消息,并且CXF可以与SpringWS(以及引导)一起使用

因此,我对多个部分的看法是错误的,只有一个部分是输入和输出的,但是在JBoss WSDL编辑器中,在wsconsume生成的Java代码中,它根本不是这样看的:因此我需要考虑创建一个不同于上下文ws consume使用的对象。顺便说一句,我发现这个答案对于让CXF和Spring Boot协同工作非常有用: