Announcement Announcement Module
Collapse
No announcement yet.
inboud-gateway & ws:inbound-gateway and another assorted love songs Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • inboud-gateway & ws:inbound-gateway and another assorted love songs

    Hi everybody , i'm new at spring integration and i'm having a problema that maybe it's easy for most of you ...

    My sample app have a service that is exposed to both rest services and web services.

    For the rest services part i configured a inboud gateway and then used json-to-object and it works porperly

    then i commented that configuration and impelemented a ws-inbound-gateway that also works fine.

    But i cannot use both becasue of the servlet definition in the web.xml. If use MessageDispatchServlet it do not accept the rest requests and if i use the DispatchServlet i can't handle the SOAP messages.

    I've tried to use the DispatchServlet adding the beans of MessageFactory and WsdlHandler but then again it does not accept rest messages ( as before evaluating the inbound gateway it tries to handle the message as SOAP )


    here is my spring-integration-servlet.xml :


    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:beans="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:oxm="http://www.springframework.org/schema/oxm"
    	xmlns:int="http://www.springframework.org/schema/integration"
    	xmlns:int-http="http://www.springframework.org/schema/integration/http"
    	xmlns:int-ws="http://www.springframework.org/schema/integration/ws"    
    	xmlns:int-xml="http://www.springframework.org/schema/integration/xml"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    	http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/integration/ws 
    	http://www.springframework.org/schema/integration/ws/spring-integration-ws-2.2.xsd
    	http://www.springframework.org/schema/integration/xml
    	http://www.springframework.org/schema/integration/xml/spring-integration-xml-2.2.xsd
    	http://www.springframework.org/schema/integration 
    	http://www.springframework.org/schema/integration/spring-integration-2.2.xsd
    	http://www.springframework.org/schema/oxm
    	http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
    	http://www.springframework.org/schema/integration/http 
    	http://www.springframework.org/schema/integration/http/spring-integration-http.xsd">
    
    	   
    	<int:channel id="receiveRestChannel"/>	
    	<int:channel id="responseRestChannel"/>	
    	
    	<int-http:inbound-gateway id="RestEndpoint" request-channel="receiveRestChannel"
                              name="/receiveGateway"
                              supported-methods="GET, POST"
                              reply-channel = "responseRestChannel"/>
                                                      
    
    	<beans:bean id="monkeyBusinessService" class="com.myapp.samples.samplehttp.impl.MonkeyBusiness"/>
    	
    	<int:chain id = "RestChain" input-channel = "receiveRestChannel" output-channel="responseRestChannel">	
    		<int:json-to-object-transformer type="com.myapp.samples.samplehttp.RequestHttp"/>
    		<int:service-activator  ref="monkeyBusinessService" method="prueba"/>
    		<int:object-to-json-transformer />	
    	</int:chain>
        
         <!-- WS INBOUND GATEWAY -->           
    	
    	<int-ws:inbound-gateway id="WsEndpoint"
    				request-channel="receiveWsChannel" 
    				reply-channel="responseWSChannel"
    				marshaller= "marshaller" 
    				unmarshaller= "unmarshaller"
    				message-factory="messageFactory"/>
    			
    	<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>
    	
    	<bean class="org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter"/>
    
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="defaultHandler" ref="messageDispatcher"/>
        </bean>
    
        <bean id="messageDispatcher" class="org.springframework.ws.soap.server.SoapMessageDispatcher"/>
    
    
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    	
    				
    	<int:channel id="receiveWsChannel"/>	
    	<int:channel id="responseWSChannel"/>	
    		
    	<oxm:jibx-marshaller id="unmarshaller" target-class="com.myapp.samples.samplehttp.RequestHttp"/>
        <oxm:jibx-marshaller id="marshaller"   target-class="com.myapp.samples.samplehttp.ResponseHttp"/>
    
    	<bean id="payloadMapping"
    		class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
    		<property name="defaultEndpoint" ref="WsEndpoint" />
    		<property name="interceptors" ref="validatingInterceptor"/>
    	</bean>
    
    	<bean id="validatingInterceptor"
    		class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
    		<property name="xsdSchema" ref="schema" />
    		<property name="validateRequest" value="true" />
    	</bean>
    
    
    
    	<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema">
    
    		<property name="xsd" value="/WEB-INF/dataObjSchema.xsd" />
    	</bean>
    	
    	
    	<bean id="sampleHttp"
    		class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
    		<property name="schema" ref="schema" />
    		<property name="portTypeName" value="Sample" />
    		<property name="requestSuffix" value="uestHttp"/>
    		<property name="responseSuffix" value="ponseHttp"/>
    		<!-- TODO change url -->
    		<property name="locationUri" value="http://localhost:8080/http/SampleHttp" />
    	</bean>
    		
    	<int:service-activator id="wsActivator" input-channel="receiveWsChannel" output-channel="responseWSChannel" ref="monkeyBusinessService" method="prueba"/>
    	
    </beans>

    Thanks in advance to everyone , at least for reading...

  • #2
    The Spring WS Reference Document explains how to wire up a DispatcherServlet to handle WS calls as well as normal controllers...

    http://static.springsource.org/sprin...er.html#d5e885

    Comment


    • #3
      Thanks Gary , actually i read it but maybe i didn't use it porperly .... anyway i'm now having some other problems but maybye is better to post my question in a new thread.

      Thanks a lot

      Comment

      Working...
      X