Spring 集成网关服务方法在 start/stop 时未返回
Spring Integration Gateway Service method not returning upon start/stop
我创建了一个控制通道和一个网关服务来向该通道发送控制消息。但是,在我调用应该 return 布尔值的网关服务方法之后,消息提交后不是 returning。
代码片段:
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"/>
但是,如果我发送一条消息@testAdapter.isRunning() 来检查状态,它 return 如预期的那样。
好吧 void stop()
没有 return 结果,而 boolean isRunning()
有;网关对被调用的方法一无所知;您是 "telling" 您所期待的框架,结果永远不会到来。
您可以添加其他网关方法
void sendOneWayControl(String command);
或将default-reply-timeout="0"
添加到网关,您将获得null
return.
我创建了一个控制通道和一个网关服务来向该通道发送控制消息。但是,在我调用应该 return 布尔值的网关服务方法之后,消息提交后不是 returning。
代码片段:
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"/>
但是,如果我发送一条消息@testAdapter.isRunning() 来检查状态,它 return 如预期的那样。
好吧 void stop()
没有 return 结果,而 boolean isRunning()
有;网关对被调用的方法一无所知;您是 "telling" 您所期待的框架,结果永远不会到来。
您可以添加其他网关方法
void sendOneWayControl(String command);
或将default-reply-timeout="0"
添加到网关,您将获得null
return.