2017-01-24 58 views
1

我嘗試使用java dsl配置春季集成HTTP出站網關。在哪裏我可以連接到外部休息服務。但我想攔截請求&響應有效負載信息到審計表。春季集成HTTP出站網關Java與dsl溝通interterceptor adapter

通過Spring集成XML配置,我能夠實現。

<int:channel id="channel.ext.request"> 
    <int:interceptors> 
     <ref bean="customInterceptor" /> 
    </int:interceptors> 
</int:channel> 

customIntercepter擴展了ChannelInterceptorAdapter。在這裏我只是重寫postSend方法並將頻道信息保存到數據庫表中。

public Message<?> postSend(Message<?> message, MessageChannel channel) { 
     return message; 
} 

這是按預期工作。

我想通過java dsl攔截請求&響應通道信息。 我無法獲得任何消息。這是我的java dsl配置。

@Bean 
public IntegrationFlow httpOut() { 
     logger.info("IntegrationFlow enabled"); 

     return IntegrationFlows.from("channel.ext.request") 
       .enrichHeaders(getHeaders()) 
       .handle(Http.outboundGateway("http://hostname/rest/invoke").charset("UTF-8") 
         .httpMethod(HttpMethod.POST).requestFactory(requestFactory()).expectedResponseType(String.class)) 
       .channel("channel.ext.response").get(); 
} 

請建議。

回答

1
.channel(MessageChannels.direct("channel.ext.request").interceptor(myInterceptor())) 
.handle(...) 
.channel(MessageChannels.direct("channel.ext.response").interceptor(myInterceptor())) 
+0

謝謝加里,它解決了我的問題。 –