0

私は、データベースからの読み取りと書き込みを目的としたJavaコマンドラインアプリケーションを作成しており、作業が完了したら実行を終了します。

REST インターフェイスを誰にも公開することはなく、サーバーを起動してポートをリッスンする必要もありません。

したがって、アプリは次のようなものです。

public class Main {

    public static void main(final String[] args) {
       // Start Helidon CDI, JTA, etc. - but not JAX-RS
       // No: Server.create().start();
       // No: io.helidon.microprofile.cdi.Main.main(args);

       // Do work
       MyApp myApp = CDI.current().select(MyApp.class).get();
       app.run();

       // Shutdown
       io.helidon.microprofile.cdi.Main.shutdown();
    }
}

しかし、Helidon フレームワークを初期化すると、Web サーバーが起動され、ポート 8080 (またはその他) でリッスンし始めます。Helidon の Main.main(...) メソッドを使用している場合でも、Web サーバーが起動されます。

では、CDI、JTA、JPA を使用するが Web サーバーを使用しないコマンドライン アプリで使用するために、Helidon を起動/初期化するにはどうすればよいでしょうか?

Spring Boot に関して言えば、私は Helidon に相当するCommandLineRunner.

4

1 に答える 1

0

アプリケーションを CDI で管理できるように CDI コンテナを起動するだけならSeContainerInitializer、通常の CDI である を使用できます。Helidon の有無にかかわらず、これを行うことができます。

Helidon JPA/JTA 機能を使用する場合は、通常の CDI ポータブル拡張機構を介して公開されるため、クラスパスに配置するだけです。

于 2021-09-22T20:54:44.013 に答える