基本上,有一个后端应用程序可以公开SOAP和RESTful服务.
我已决定将Spring WS 1.5.8用于SOAP服务,并将
Spring MVC 3.0用于RESTful服务,因为这是一项新功能.
在阅读了一些关于Spring WS(我是新手!)之后,我们在Spring WS的web.xml中声明了一个"MessageDispatcherServlet",它是一个前端控制器.
对于Spring MVC,我们应该在web.xml中声明一个"DispatcherServlet",它也是一个前端控制器.
对于这两个servlet,我们在web.xml中有不同的servlet声明.
即对于Spring WS我有
springsoap org.springframework.ws.transport.http.MessageDispatcherServlet 1 springsoap /soapservices/*
对于Spring MVC(RESTful),我有
springmvc org.springframework.web.servlet.DispatcherServlet 1 springmvc /restservices/*
因此我应该使用2个配置文件?? 一个名为springmvc-servlet.xml,另一个名为springsoap-servlet.xml?
可以这样做吗?
是的,这很好.你把MVC相关的东西放在一个,把WS的东西放到另一个东西里.
如果他们需要共享服务,那么最好使用ContextLoaderListener
in 来声明共享上下文web.xml
,它定义了应该包含共享bean的第三个上下文(请参阅文档,例如如何设置它).
它也是值得的,MessageDispatcherServlet
只是方便的标准组件DispatcherServlet
加上一些其他组件.您可以自己声明这些组件并使用a DispatcherServlet
,但这非常繁琐.