使用MessageDispatcherServlet与DispatcherServlet中的Spring-WS连接

时间:2014-01-29 03:58:10

标签: java spring web-services

当我浏览Webservices的Spring参考时,我知道有两种方法可以在spring中实现jax-ws webservices。

一个是使用MessageDispatcherContext,我发现这是最简单的方法。

另一种方法是使用WebServiceMessageReceiverHandlerAdapter和SimpleControllerHandlerAdapter等适配器在DispatcherServlet中连接Spring-ws。

我无法理解第二种方法的必要性,因为它起初看起来有点复杂。 请帮助我理解为什么我应该使用第二种方法,并给出一种方法最适合的方案。

谢谢。

1 个答案:

答案 0 :(得分:0)

这个问题的答案在于Spring Webservices文档本身:

The message dispatcher operates on a message contextand not transport-specific input stream and output stream

因此,传输特定请求需要读入MessageContext。

For HTTP, this is done with a WebServiceMessageReceiverHandlerAdapter,它是一个Spring Web HandlerInterceptor`,因此MessageDispatcher可以在标准的DispatcherServlet中连接。

  

http://docs.spring.io/spring-ws/site/reference/html/server.html

您应该使用WebServiceMessageReceiverHandlerAdapter,因为在大多数情况下,传输是HTTP / S.但是,如果您的应用程序像Mule一样充当服务总线 - MessageDispatcher更适合