2010-11-02 248 views
17

基本上有一個公開SOAP和RESTful服務的後端應用程序。我可以在單個應用程序中使用Spring MVC和Spring WS嗎?

我決定使用 Spring WS 1.5.8用於SOAP服務,而
Spring MVC 3.0用於RESTful服務,因爲這是一項新功能。我在Spring WS的web.xml中聲明瞭一個「MessageDispatcherServlet」,它是一個前端控制器。

對於Spring MVC,我們應該在web.xml中聲明一個「DispatcherServlet」,它也是一個前端控制器。

對於這兩個servlet,我們在web.xml中都有不同的servlet聲明。

即春季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> 

爲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?

可以這樣做嗎?

回答

17

是的,這很好。你把MVC相關的東西合併成一個,而WS的東西合併成另一個。

如果他們需要共享的服務,那麼它的最好聲明中web.xml使用ContextLoaderListener共享的情況下,它定義了第三上下文應包含共享豆(see docs for example of how to set this up)。

MessageDispatcherServlet只是一個標準的DispatcherServlet加上一些其他組件的便利彙編也是值得的。你可以只是自己聲明這些組件,並使用DispatcherServlet,但這很容易。

+1

謝謝! :)我知道如何使用ContextLoaderListener設置applicationContext.xml .. – 2010-11-02 15:35:05

相關問題