2015-08-24 35 views
1

我有以下彈簧集成配置,它從讀取驅動器中的文件開始,將其轉換爲java對象並向REST APT發送http GET請求。前兩個步驟在我的鏈中工作正常,但當涉及到int-http:出站網關步驟時,URL永遠不會觸發,也不會顯示任何錯誤消息。應用程序保持運行狀態而不顯示任何錯誤消息。它永遠不會去kbbCvsReadResponseTransformer類,我可以檢查從這個REST服務收到的響應。可能是什麼原因。我正在使用spring-integration-4.1.2Spring集成不會觸發int-http:出站網關URL

<int-file:inbound-channel-adapter id="kbbFileInbound" 
     channel="kbbInboundFileChannel" 
     directory="file:/ftpguest/kbb-gm-rem/data" 
     filename-pattern="GM_Remarketing_Pricing_Res_*.csv" 
     auto-startup="true" 
     prevent-duplicates="true"> 
     <int:poller fixed-rate="5000"/> 
    </int-file:inbound-channel-adapter> 

    <int:chain input-channel="kbbInboundFileChannel" output-channel="kbbCvsReadRequest"> 
     <int:transformer ref="kbbInputFileDataTransformer" /> 
    </int:chain> 

    <int:chain input-channel="kbbCvsReadRequest" output-channel="cvsVehicleReadRequest"> 
     <int:transformer ref="kbbCvsUpdateRequestTransformer" /> 
    </int:chain> 

    <int:chain input-channel="cvsVehicleReadRequest" output-channel="cvsVehicleReadResponse"> 
     <int:header-enricher> 
      <int:header name="Content-Type" expression="'application/json'" /> 
     </int:header-enricher> 
     <int-http:outbound-gateway http-method="GET" expected-response-type="com.fasterxml.jackson.databind.JsonNode" 
      charset="UTF-8" request-factory="clientHttpRequestFactory" url="http://services.dev-sea.cobaltgroup.com/inventoryWebApp/rest/v1.0/vehicles/search?vin={vin};inventoryOwner={inventoryOwner}"> 
      <int-http:uri-variable name="vin" expression="payload.getVin()"/> 
      <int-http:uri-variable name="inventoryOwner" expression="payload.getInventoryOwner()"/> 
      <int-http:request-handler-advice-chain> 
       <ref bean="retrier" /> 
      </int-http:request-handler-advice-chain> 

     </int-http:outbound-gateway> 

    </int:chain> 

    <int:chain input-channel="cvsVehicleReadResponse"> 
     <int:transformer ref="kbbCvsReadResponseTransformer" /> 
    </int:chain> 


    <bean id="clientHttpRequestFactory" 
     class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory"> 
     <property name="httpClient" value="#{httpComponentsMessageSender.httpClient}" /> 

    </bean> 

    <bean id="kbbInputFileDataTransformer" class="com.cdk.dmg.kbb.integration.transformer.KbbInputFileDataTransformer"/> 
    <bean id="kbbCvsUpdateRequestTransformer" class="com.cdk.dmg.kbb.integration.transformer.KbbCVSUpdateRequestTransformer" /> 
    <bean id="kbbCvsReadResponseTransformer" class="com.cdk.dmg.kbb.integration.transformer.KbbCVSReadResponseTransformer" /> 


    <!-- Need to use it from integration-context.xml, there are lot of issues with this file right now, so temporerly copied it here --> 
    <int:handler-retry-advice id="retrier" max-attempts="5" recovery-channel="errorChannel"> 
     <int:exponential-back-off initial="1000" multiplier="5.0" maximum="60000" /> 
    </int:handler-retry-advice> 

回答

0

我們不能在沒有任何日誌確認的情況下幫助您。

請分享DEBUG日誌爲org.springframework.integration有一個圖片如何消息旅行。

從其他方面看來,你有一些錯誤,並根據<int:handler-retry-advice>配置發送到errorChannel。 這就是爲什麼你沒有得到任何答覆cvsVehicleReadResponse之後...

+0

正如我所說的控制檯沒有顯示任何日誌,程序繼續處於運行狀態,直到我強行終止它。我從Junit單獨運行這個應用程序。我試圖完全消除反彈的建議,但它仍然表現得一樣。 – user1614862

+0

聽起來不太好。至少''「在輪詢期間收到沒有消息,返回'false'」'DEBUG消息,你應該在每個'5000'的日誌中記錄那個''。從另一方面來說,我們真的不知道你們所有的變壓器是做什麼的......請分享DEBUG日誌。是的:嘗試簡化用例來本地化代碼的有罪部分。 –

+0

變壓器只是空的,我只是將有效載荷從一個變壓器傳遞到另一個。我真的找不到任何地方的DEBUG日誌和控制檯是空的。 – user1614862

相關問題