如何使用spring-ws添加SOAP标头

时间:2015-09-01 12:32:39

标签: spring-ws

我使用Spring-WS创建了一个Web服务端点:

@Endpoint
public class MyEndpoint{

@PayloadRoot(namespace = NAMESPACE, localPart = "MyRequest"
@ResponsePayload
public final MyResponse MyService(@RequestPayload final MyRequest request, SoapHeader header) {

... implementation that creates the reponse ...

return response;
}

这会创建服务并为服务生成WSDL。 但是,我的WSDL中的部分仍然是空的。

那么,为了“填充”标题,我该怎么做?

1 个答案:

答案 0 :(得分:1)

SoapHeader不代表单个标题块,但soap:Header元素包含所有标题块作为子标题。这意味着您的服务定义没有提供足够的元数据来生成带有绑定到标头块的消息部分的WSDL。您必须使用SoapHeaderElement注释声明@SoapHeader参数,该注释指定标题块的名称。从理论上讲,这将提供足够的元数据来生成预期的WSDL,但我相信在实践中Spring-WS并不支持这一点。请注意,这并不意味着生成的WSDL不正确。原因是在WSDL中声明头块不是必须的。