我们如何在spring集成中使用uri端点映射

时间:2015-06-14 05:32:23

标签: web-services spring-integration

我正在尝试使用注释配置spring集成。我想使用URI端点映射而不是payloadqnameendpoint映射。我找到了许多带有默认URI端点的示例,但我需要一个没有默认端点的注释示例。

1 个答案:

答案 0 :(得分:0)

让我们来看看Spring WS中的AnnotationActionEndpointMapping支持!如您所见,它基于POJO方法和它们上的注释之间的划分。 POJO 是那里的主要词汇。这种框架魔术允许我们将低级协议与最终应用程序业务逻辑分开。从另一方面来看,Spring Integration的AbstractWebServiceInboundGateway实现MessageEndpoint意味着整个SOAP的工作将在此实现中完成。它不是一个POJO。 当然,这个主题是一个不同的故事,但您应该从这里了解MessageEndpointMethodEndpoint的工作方式有所不同。至少他们从不同级别的SOAP请求中执行消息传递逻辑。

所以,我们真的不能将<int-ws:inbound-gateway>映射到@Action或类似,因为它已经是一个完整的SOAP端点。

另一方面,从Java配置中AnnotationActionEndpointMapping,您可以完全摆脱<int-ws:inbound-gateway>并将Endpoint配置为将所需的@Action委托给{@MessagingGateway的方法1}}。并且它将工作beucase Spring WS框架已经完成的硬SOAP工作。

我不知道这段代码会有效,但您可以查看或告诉我,我会对其进行测试并再次回复:

@Endpoint
@MessagingGateway
public interface OrderEndpoint {

    @Action("http://samples/RequestOrder")
    @Gateway(requestChannel = "getOrderChannel")
    Order getOrder(OrderRequest orderRequest);

    @Action("http://samples/CreateOrder")
    @Gateway(requestChannel = "createOrderChannel")
    void order(Order order);

}