0

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();
    }
}

今、私は2つのことが可能かどうか知りたいです:

  1. このサーバーが実行を開始したときにマスターサーバーにメッセージを送信するようにします。これは、基本的にこのサーバーの情報を含む「Hello」メッセージです。
  2. CTRL+C を押すか、何か他のことを行ってマスター サーバーをシャットダウンするときに、彼を忘れるようにマスター サーバーに伝えます。

私もこれを読みました:

技術的には、doStart メソッドと doStop メソッドをオーバーライドすることで意図した動作が得られるはずですが、これらのメソッド (特に doStop メソッド) はまったく機能しません。

これを行う方法はありますか?はいの場合、どのように?そうでない場合、どのような選択肢がありますか?

前もってありがとう、ペドロ。

4

1 に答える 1