Spring Web Service基于Soap Headers动态重定向请求

时间:2014-07-29 12:15:12

标签: spring-ws

我正在开发Spring Web Service项目,我开发了一个Endpoint类,它接受来自SOAP UI的请求,并提供响应。

Soap请求有Header [some properties],Body [请求标记包含一些元素]

现在我必须根据标头中传递的属性更改端点调用。 "标题有一个名为operationVersion"

的属性

如果我从soapheader得到operationVersion为3,那么我必须调用我现有的Endpoint,如果我得到operationVersion为5那么我必须调用另一个处理版本5响应的Endpoint。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

如何使用标准版 - WS-Addressinghttp://docs.spring.io/spring-ws/docs/2.2.0.RELEASE/reference/htmlsingle/#server-ws-addressing

通过这样的方式,您将能够route使用以下内容:

@Action("http://samples/RequestOrder")
public Order getOrder(OrderRequest orderRequest) {
    return orderService.getOrder(orderRequest.getId());
}

@Action("http://samples/CreateOrder")
public void order(Order order) {
    orderService.createOrder(order);
}

否则你只能通过一种方法实现它并在其中进行路由:

public void handle(@RequestPayload DOMSource domSource, @SoapHeader("operationVersion") SoapHeaderElement header)