基本上,有一个后端应用程序可以公开SOAP和RESTful服务。
我决定使用
Spring WS 1.5.8用于SOAP服务,以及
Spring MVC 3.0 for RESTful服务,因为这是一个新功能。
在阅读了一些关于Spring WS的内容之后(我是新手!)我们必须在Spring WS的web.xml中声明一个“MessageDispatcherServlet”,它是一个前端控制器。
对于Spring MVC,我们应该在web.xml中声明一个“DispatcherServlet”,它也是一个前端控制器。
对于这两个servlet,我们在web.xml中有不同的servlet声明。
即。对于Spring WS,我有
<servlet>
<servlet-name>springsoap</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springsoap</servlet-name>
<url-pattern>/soapservices/*</url-pattern>
</servlet-mapping>
for Spring MVC(RESTful)我有
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/restservices/*</url-pattern>
</servlet-mapping>
因此我应该使用2个配置文件?一个名为springmvc-servlet.xml,另一个名为springsoap-servlet.xml?
可以这样做吗?
答案 0 :(得分:17)
是的,这很好。你将MVC相关的东西放在一个,把WS的东西放到另一个。
如果他们需要共享服务,那么最好使用ContextLoaderListener
中的web.xml
声明共享上下文,该MessageDispatcherServlet
定义应包含共享bean(see docs for example of how to set this up)的第三个上下文。
DispatcherServlet
只是标准DispatcherServlet
加上一些其他组件的便捷装配,这也是值得的。您可以自己声明这些组件并使用{{1}},但这非常繁琐。
答案 1 :(得分:1)