The initial support for inbound WS is now available. We have the following two classes:
SimpleWebServiceInboundGateway
MarshallingWebServiceInboundGateway
These are available in the nightly build (and will be released with version 1.0.2). You can get the very latest version by checking out the SVN trunk or download the nightly snapshot here (or any later nightly by changing the build number):
https://build.springframework.org/do...-424/artifacts
These gateways are themselves Spring-WS Endpoint implementations. Therefore to use them, simply register the Spring-WS MessageDispatcherServlet in web.xml:
Code:
<servlet>
<servlet-name>ws</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ws</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
Then, any Spring-WS EndpointMapping can be used. For example:
Code:
<bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
<property name="mappings">
<value>
foo=simpleEndpoint
bar=marshallingEndpoint
</value>
</property>
</bean>
(With the configuration above any XML with a "foo" root element name will go to the simple endpoint while any XML with a "bar" root element name will go to the marshalling endpoint.)
Then, add the Spring Integration gateway(s):
Code:
<bean id="simpleEndpoint" class="org.springframework.integration.ws.SimpleWebServiceInboundGateway">
<property name="requestChannel" ref="wsRequests"/>
</bean>
<bean id="marshallingEndpoint" class="org.springframework.integration.ws.MarshallingWebServiceInboundGateway">
<property name="requestChannel" ref="wsRequests"/>
<property name="marshaller" ref="someMarshaller"/>
<property name="unmarshaller" ref="someMarshaller"/>
</bean>
If you get a chance to try this out, please provide feedback so that we can take any suggestions into account for the 1.0.2 release.
Thanks,
Mark