325.12. 웹 서비스 노출
이 구성 요소를 사용하여 웹 서비스를 노출하려면 먼저 Spring XML 파일에서 끝점 매핑을 찾으려면 MessageDispatcher 를 설정해야 합니다. 서블릿 컨테이너 내에서 실행하려는 경우 web.xml
에 구성된 MessageDispatcherServlet
을 사용해야 합니다.
기본적으로 MessageDispatcherServlet
은 /WEB-INF/spring-ws-servlet.xml
이라는 Spring XML을 찾습니다. Spring-WS와 함께 Camel을 사용하려면 해당 XML 파일에서 유일한 필수 8080은 CamelEndpointMapping
입니다. 이 빈을 사용하면 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 "엔드를 구현"하는 것은 이 구성 요소에 의해 처리됩니다 (특히 3.6.2 "엔드로 메시지 아웃"은 CamelEndpointMapping
이 들어오는 위치입니다. Camel 배포에 포함된 Spring Web Services 예제도 확인하는 것을 잊어서는 안 됩니다.