0

REST リソース (Jersey アノテーション付きの Java クラス) のみを所有する単純な REST サービスを作成しています。この REST リソースが機能するには、いくつかの Java オブジェクトが必要です。これらの Java オブジェクトは数百 MB と非常に大きいため、RAM にロードするのに時間がかかります。したがって、これらのオブジェクトをこの REST クラスの静的メンバーとして追加しようとしています。ただし、REST サービスにリクエストを送信すると、常にNullPonterExceptionがスローされます。RESTリソース(クラス)がロードされる前にこれらの静的メンバーがインスタンス化されない理由を誰でも説明できますか? それとも他の理由でしょうか?

よろしくお願いします。

: これらの静的メンバーは、依存関係 jar 内のクラスによって作成された一部のマップおよびリスト オブジェクトです。

編集:以下のInfoConstructorは、これらの静的オブジェクトの作成を担当する 1 つのユーティリティ クラスであると想定します。

私の REST リソース クラスのコードは次のとおりです。

@Path("test")
public class TestResource {
    public static Map<String, Integer> vocMap = InfoConstructor.getVocMap();

    @Get
    @Produce(Media.TEXT_HTML)
    public String testGet() {
         return vocMap.hashCode();
    }
}
4

1 に答える 1

1

コメントに基づいて、静的リソースが正しく初期化されているようです。クラスパスリソースを解決する問題の詳細。jar内のクラスパスリソースを見てください

于 2012-08-12T01:57:03.463 に答える