我有一个使用 JAVA DSL 的简单骆驼 MINA 服务器,我的运行方式与此处记录的示例一样:
当前,此服务器从队列接收报告,更新它们,然后将它们发送到下一个服务器。一个非常简单的代码:
public class MyApp_B {
private Main main;
public static void main(String... args) throws Exception {
MyApp_B loadbalancer = new MyApp_B();
loadbalancer.boot();
}
public void boot() throws Exception {
main = new Main();
main.enableHangupSupport();
main.addRouteBuilder(
new RouteBuilder(){
@Override
public void configure() throws Exception {
from("mina:tcp://localhost:9991")
.setHeader("minaServer", constant("localhost:9991"))
.beanRef("service.Reporting", "updateReport")
.to("direct:messageSender1");
from("direct:messageSender1")
.to("mina:tcp://localhost:9993")
.log("${body}");
}
}
);
System.out.println("Starting Camel MyApp_B. Use ctrl + c to terminate the JVM.\n");
main.run();
}
}
现在,我想知道是否可以做两件事:
- 使该服务器在开始运行时向主服务器发送消息。这是一条带有此服务器信息的“Hello”消息。
- 告诉主服务器在我按下 CTRL+C 或执行其他操作时将其忘记。
我也读过这个:
从技术上讲,通过覆盖 doStart 和 doStop 方法,我应该得到预期的行为,但是,这些方法(特别是 doStop 方法)根本不起作用。
有没有办法做到这一点 ?如果是怎么办?如果没有,我有什么选择?
在此先感谢佩德罗。