324.12. 웹 서비스 노출
이 구성 요소를 사용하여 웹 서비스를 노출하려면 먼저 Spring XML 파일에서 끝점 매핑을 찾으려면 MessageDispatcher 를 설정해야 합니다. 서블릿 컨테이너 내부에서 실행하려는 경우 web.xml 에 구성된 MessageDispatcherServlet 을 사용할 수 있습니다.
기본적으로 MessageDispatcherServlet 은 /ECDHE -INF/spring-ws-servlet.xml 이라는 Spring XML을 찾습니다. Camel을 Spring-WS와 함께 사용하는 XML 파일의 유일한 필수Bean은 CamelEndpointMapping 입니다. 이 DestinationRule을 사용하면 MessageDispatcher 가 웹 서비스 요청을 경로로 전달할 수 있습니다.
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 설정에 대한 자세한 내용은 contract-First Web Services에서 확인할 수 있습니다. 기본적으로 3.6 "Implementing the Endpoint"는 이 구성 요소에서 처리합니다(특히 3.6.2 "중점으로의 메시지 표시"는 CamelEndpointMapping 이 들어오는 위치입니다). 또한 Camel 배포에 포함된 Spring Web Services Example을 확인하는 것을 잊어서는 안 됩니다.