20

基本的に、SOAP サービスと RESTful サービスの両方を公開するバックエンド アプリケーションがあります。

SOAP サービスには Spring WS 1.5.8 を使用し
、RESTful サービスには Spring MVC 3.0 を使用することにしました。これは新しい機能です。

Spring WS について少し読んだときに (私はこれが初めてです!)、Spring WS の web.xml で、フロント コントローラーである「MessageDispatcherServlet」を宣言する必要がありました。

Spring MVC の場合、web.xml で、フロント コントローラーでもある「DispatcherServlet」を宣言する必要があります。

両方のサーブレットに対して、web.xml に異なるサーブレット宣言があります。

つまり、私が持っている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>

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つの構成ファイルを使用する必要があります?? 1 つは springmvc-servlet.xml という名前で、もう 1 つは springsoap-servlet.xml という名前ですか?

これはできますか?

4

2 に答える 2

17

はい、これでいいです。MVC 関連のものを 1 つに入れ、WS のものを別のものに入れます。

ContextLoaderListenerサービスを共有する必要がある場合は、 inを使用して共有コンテキストを宣言することをお勧めします。web.xmlこれにより、共有 Bean を含む 3 番目のコンテキストが定義されます (設定方法の例についてはドキュメントを参照してください)。

また、標準にいくつかの他のコンポーネントを加えたMessageDispatcherServlet便利なアセンブリであっても、何の価値もありません。これらのコンポーネントを自分で宣言して を使用するDispatcherServletこともできDispatcherServletますが、それは非常に面倒です。

于 2010-11-02T14:57:33.487 に答える
1

https://code.google.com/p/spring-ws-2-0-0-rc2-tutorial/downloads/detail?name=spring-ws.zip&can=2&q=で例をダウンロードできます。

于 2013-06-19T08:01:50.293 に答える