2016-12-27 16 views
0

コントロールチャネルとゲートウェイサービスを作成して、そのチャネルに制御メッセージを送信しました。しかし、ブール値を返すと想定されるゲートウェイサービスメソッドを呼び出すと、メッセージの送信後に返されません。開始/停止時にSpring Integration Gatewayサービスメソッドが返されない

コードスニペットは:私は状態を確認するために、メッセージの@ testAdapter.isRunning()を送信した場合、予想通り

public interface SampleControlService { 
    boolean sendControl(String message); 
} 

.... 

@Autowired 
private SampleControlService sampleControlService; 

..... 

boolean done = sampleControlService.sendControl("@testAdapter.stop()"); // message gets sent but it is not returning to caller 

System.out.println("Done : " + done); // this line doesn't execute 


// integration config 
<int:channel id="controlChannel"/> 
<int:gateway service-interface="com.test.service.SampleControlService" default-request-channel="controlChannel" /> 
<int:control-bus input-channel="controlChannel"/> 

しかし、それが返されます。

答えて

1

ウェルvoid stop()は結果を返しませんが、boolean isRunning()は結果を返します。ゲートウェイは呼び出されたメソッドについて何も知らない。あなたは決して来ることのない結果を期待しているフレームワークを「伝えている」。

あなたは別のゲートウェイ方式

void sendOneWayControl(String command); 

またはゲートウェイにdefault-reply-timeout="0"を追加を追加することができますし、nullリターンを得るでしょう。

+0

ありがとう、新しいメソッドを追加しました。 – zdesam

関連する問題