325.12. Web サービスの公開
このコンポーネントを使用して Web サービスを公開するには、まず MessageDispatcher をセットアップして、Spring XML ファイルでエンドポイントマッピングを探す必要があります。サーブレットコンテナー内で実行する予定がある場合は、web.xml
で設定された MessageDispatcherServlet
を使用することを推奨します。
デフォルトでは、MessageDispatcherServlet
は /WEB-INF/spring-ws-servlet.xml
という名前の Spring XML を探します。Spring-WS で Camel を使用するには、その XML ファイルで必須の Bean は CamelEndpointMapping
のみです。この Bean により、MessageDispatcher
は Web サービスリクエストをルートにディスパッチできます。
web.xml
<web-app> <servlet> <servlet-name>spring-ws</servlet-name> <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-ws</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
spring-ws-servlet.xml
<bean id="endpointMapping" class="org.apache.camel.component.spring.ws.bean.CamelEndpointMapping" /> <bean id="wsdl" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition"> <property name="schema"> <bean class="org.springframework.xml.xsd.SimpleXsdSchema"> <property name="xsd" value="/WEB-INF/foobar.xsd"/> </bean> </property> <property name="portTypeName" value="FooBar"/> <property name="locationUri" value="/"/> <property name="targetNamespace" value="http://example.com/"/> </bean>
Spring-WS のセットアップの詳細は、Writing Contract-First Web Services を参照してください。基本的に、パラグラフ 3.6「エンドポイント」の実装はこのコンポーネントによって処理されます (具体的には、パラグラフ 3.6.2「エンドポイントへのメッセージのルーティング」で CamelEndpointMapping
が登場します)。また、Camel ディストリビューションに含まれている Spring Web Services Example も忘れずにチェックしてください。