2014-06-21 41 views
0

下面的代碼使用Spring集成3.0.1入站網關無法發送回覆

客戶端集成XML:

<int:channel id="serviceTWeb"></int:channel> 
    <int:gateway id="serviceTGW" default-request-channel="serviceTWeb" 
      service-interface="com.test.ServiceTWeb"> 
    </int:gateway> 
    <int-http:outbound-gateway 
      url="http://testserver:8080/service-webapp/service" 
      http-method="POST" id="RequestTNHTTP" reply-timeout="2000" 
      request-channel="serviceTWeb" message-converters="conv> 
    </int-http:outbound-gateway> 

    <bean id="conv" class="org.springframework.integration.http.converter.SerializingHttpMessageConverter"> 
    </bean> 

Web端集成XML:

<!-- The following uses a ServiceActivator on service --> 
    <bean id="stweb" class="test.poc.si.ServiceTWeb"></bean> 

    <bean id="conv" class="org.springframework.integration.http.converter.SerializingHttpMessageConverter"> 
    </bean> 

    <int:channel id="requestChannel"></int:channel> 
    <int:channel id="replyChannel"></int:channel> 

    <int:service-activator input-channel="requestChannel" ref="stweb" 
      method="service" requires-reply="true" id="webserv" 
      output-channel="replyChannel"> 
    </int:service-activator> 
    <int-http:inbound-gateway request-channel="requestChannel" 
      supported-methods="POST" path="/service" message-converters="conv" 
      reply-channel="replyChannel"> 
      </int-http:inbound-gateway> 

客戶端讓外面的服務器請求,服務器端獲取代碼 並處理該請求的對象,但服務器扔發送時以下回覆信息:

SEVERE:servlet [Multipart]中的Servlet.service()與path [/ service-webapp]引發異常[Request processing failed;嵌套異常是org.springframework.integration.MessagingException:無法轉換的回覆:找到類型[com.myobject.MReply]和接受類型[[text/html的,圖像/ GIF,圖像/ JPEG沒有合適HttpMessageConverter,/; q = .2,/; q = .2]]]與根本原因 org.springframework.integration.MessagingException:無法轉換回復:找不到類型爲[com.myobject.MReply]的合適HttpMessageConverter,並接受類型[ [文/ HTML,圖像/ GIF,圖像/ JPEG,/; q = .2 /; q = 0.2]

任何幫助將受到歡迎!

回答

0

假設com.myobject.MReplySerializable,請嘗試在出站網關上設置expected-response-type="com.myobject.MReply"。它應該使accept頭被設置爲application/x-java-serialized-object

編輯:

或者設置expected-response-type="java.io.Serializable"如果你不想把它綁一個特定的類型。

+0

是否有另一種方式來做到這一點,我寧願不指定期望的類型。 – user3762091

+0

我已經編輯了我的答案與另一種選擇。 –

+0

第一個選項工作預計響應型=「com.myobject.MReply」,但是當我試圖在網關中接受頭,我有以下幾點: – user3762091