我正在尝试使用注释配置spring集成。我想使用URI端点映射而不是payloadqnameendpoint映射。我找到了许多带有默认URI端点的示例,但我需要一个没有默认端点的注释示例。
答案 0 :(得分:0)
让我们来看看Spring WS中的AnnotationActionEndpointMapping
支持!如您所见,它基于POJO方法和它们上的注释之间的划分。 POJO 是那里的主要词汇。这种框架魔术允许我们将低级协议与最终应用程序业务逻辑分开。从另一方面来看,Spring Integration的AbstractWebServiceInboundGateway
实现MessageEndpoint
意味着整个SOAP的工作将在此实现中完成。它不是一个POJO。
当然,这个主题是一个不同的故事,但您应该从这里了解MessageEndpoint
和MethodEndpoint
的工作方式有所不同。至少他们从不同级别的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);
}