パッケージ jakarta.ws.rs

インターフェース SeBootstrap


  • public interface SeBootstrap
    Java SE 環境で JAX-RS アプリケーションを起動するために使用される Bootstrap クラス。

    SeBootstrap クラスは、Jakarta EE コンテナー環境でも使用できます。ただし、コンテナー環境では、Java SE ブートストラップ API のサポートは必要ありません

    Java SE 環境では、アプリケーションは、デフォルトの構成値を使用して次のコマンドによって開始されます (つまり、アプリケーションを http://localhost:80/  または別のポートにマウントします (この仕様で義務付けられている特定のデフォルトポートはありません ))。デフォルトで任意のポートを選択します。呼び出し元は、開始されたインスタンスの実際の構成を明示的にチェックしない限り、実際のポートを知りません。

     Application app = new MyApplication();
     SeBootstrap.Configuration config = SeBootstrap.Configuration.builder().build();
     SeBootstrap.start(app, config).thenAccept(instance -> instance.configuration().port());
     

    実行中のインスタンスは、アプリケーションの提供を停止するように指示できます。

     SeBootstrap.start(app, config).thenAccept(instance -> { ... instance.stop(); } );
     

    実装がアプリケーションの提供を停止すると呼び出されるシャットダウンコールバックを登録できます。

     instance.stop().thenAccept(stopResult -> ...));
     
    stopResult はそれ以上定義されていませんが、特定の JAX-RS 実装によって提供されるネイティブ結果のラッパーとしてのみ機能します。移植可能なアプリケーションは、特定のデータ型または値を想定すべきではありません。

    プロトコル、ホストアドレス、ポート、ルートパスは明示的に上書きできます。JAX-RS 実装はその値にバインドされているため、その場合、実際の構成のクエリは必要ありません。

     SeBootstrap.Configuration.builder().protocol("HTTPS").host("0.0.0.0").port(8443).rootPath("api").build();
     

    TLS は、カスタマイズされた SSLContextSE を明示的に渡すことで構成できます。

     SSLContext tls = SSLContext.getInstance("TLSv1.2");
     // ...further initialize context here (see JSSE API)...
     SeBootstrap.Configuration.builder().protocol("HTTPS").sslContext(tls).build();
     

    HTTPS の場合、クライアント認証を適用して、信頼できるクライアントのみが接続できるようにすることができます。

     SeBootstrap.Configuration.builder().protocol("HTTPS").sslClientAuthentication(SSLClientAuthentication.MANDATORY).build();
     

    実装はネイティブプロパティによってより多くのユースケースを自由にサポートできます。これにより、アプリケーションは実質的に移植できなくなります。

     SeBootstrap.Configuration.builder().property("productname.foo", "bar").build()
     

    一括読み込みにより、転送するすべてのプロパティを書き留める必要なく、構成ストレージを簡単にアタッチできます。アプリケーションの作成者が知らないプロパティでさえ、実装に組み込まれます。これは、明示的 (したがって移植可能) と暗黙的 (したがって、特定の構成メカニズムが準拠した実装によってサポートされる必要がないため、必ずしも移植可能であるとは限りません) の両方で実行できます。

     // Explicit use of particular configuration mechanics is portable
     SeBootstrap.Configuration.builder().from((name, type) -> externalConfigurationSystem.getValue(name, type)).build();
    
     // Implicitly relying on the support of particular configuration mechanics by
     // the actual JAX-RS implementation is not necessarily portable
     SeBootstrap.Configuration.builder().from(externalConfigurationSystem).build();
     
    導入:
    3.1
    作成者:
    Markus KARG (markus@headcrashing.eu)
    • メソッドの詳細

      • start

        static CompletionStageSE<SeBootstrap.Instance> start​(Application application,
                                                           SeBootstrap.Configuration configuration)
        指定された構成を使用して、指定されたアプリケーションを開始します。

        このメソッドは、Java SE 環境でのみ使用することを意図しています。Jakarta EE コンテナー環境での呼び出しの結果は未定義です。

        パラメーター:
        application - 起動するアプリケーション。
        configuration - アプリケーションのブートストラップに必要な情報を提供します。
        戻り値:
        CompletionStage (おそらく非同期) 実行中のアプリケーション instance のハンドルを生成します。
        導入:
        3.1
        関連事項:
        SeBootstrap.Configuration
      • start

        static CompletionStageSE<SeBootstrap.Instance> start​(Application application)
        デフォルト構成を使用して、提供されたアプリケーションを開始します。

        このメソッドは、Java SE 環境でのみ使用することを意図しています。Jakarta EE コンテナー環境での呼び出しの結果は未定義です。

        パラメーター:
        application - 起動するアプリケーション。
        戻り値:
        CompletionStage (おそらく非同期) 実行中のアプリケーション instance のハンドルを生成します。
        導入:
        3.1
        関連事項:
        SeBootstrap.Configuration
      • start

        static CompletionStageSE<SeBootstrap.Instance> start​(ClassSE<? extends Application> clazz,
                                                           SeBootstrap.Configuration configuration)
        指定された構成を使用して、指定されたアプリケーションを開始します。デフォルトのコンストラクターを使用して、クラスからアプリケーションインスタンスを作成します。インジェクションはサポートされていません。

        このメソッドは、Java SE 環境でのみ使用することを意図しています。Jakarta EE コンテナー環境での呼び出しの結果は未定義です。

        パラメーター:
        clazz - アプリケーションクラス。
        configuration - アプリケーションのブートストラップに必要な情報を提供します。
        戻り値:
        CompletionStage (おそらく非同期) 実行中のアプリケーション instance のハンドルを生成します。
        導入:
        3.1
        関連事項:
        SeBootstrap.Configuration
      • start

        static CompletionStageSE<SeBootstrap.Instance> start​(ClassSE<? extends Application> clazz)
        デフォルト構成を使用して、提供されたアプリケーションを開始します。デフォルトのコンストラクターを使用して、クラスからアプリケーションインスタンスを作成します。インジェクションはサポートされていません。

        このメソッドは、Java SE 環境でのみ使用することを意図しています。Jakarta EE コンテナー環境での呼び出しの結果は未定義です。

        パラメーター:
        clazz - アプリケーションクラス。
        戻り値:
        CompletionStage (おそらく非同期) 実行中のアプリケーション instance のハンドルを生成します。
        導入:
        3.1
        関連事項:
        SeBootstrap.Configuration