S-JIS[2024-03-10] 変更履歴

JAX-RS Application

JAX-RSのApplicationクラスのメモ。


概要

Applicationを継承したクラスで、REST APIの処理を行うクラスを指定する。

import java.util.Set;

import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;
@ApplicationPath("/api")
public class ExampleApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        return Set.of(Resource1.class);
    }
}

Applicationを継承するクラスの名前は何でもいい。APサーバーが自動的に探してくれるようだ。

getClassesメソッドで、REST APIの処理を行うクラスを返す。


インジェクション

Applicationを継承したクラスでインジェクションが出来るかどうかは、APサーバーによって違うようだ。
GlassFish7は出来るがWildFly31は出来ない)
出来ないのが仕様なのか、仕様で決まっていない不定動作なのか、バグなのかは不明。

import jakarta.inject.Inject;
@ApplicationPath("/api")
public class ExampleApplication extends Application {

    @Inject // NG ?
    private MyObject myObject;
〜
}

JAX-RSへ戻る / Java目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま