1

Java (Jersey/Maven) で Web サービスを作成します。すべてのリソースがそれらのデータベースに依存しているため、アプリケーションをデプロイする前に多数のデータベースを構築するクラスを構築したいと考えています。Jersey のServletContainerソース コードのテキスト表現がありますが、既にバイトコードにコンパイルされ、jar にパックされているため、編集することはできません。ServletContainer私のコードでクラスのインスタンスを宣言し、そこで init メソッドをオーバーライドするのと同じくらい簡単な解決策ですか?

4

1 に答える 1

1

ですべての初期化を行うことができますResourceConfig

package org.foo;

public class AppConfig extends ResourceConfig {
    public AppConfig() {
        // initialize here
        packages("the.packages.to.scan");
    }
}

そして、web.xmlで宣言できます

<web-app>
    <servlet>
        <servlet-name>MyApplication</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>org.foo.AppConfig</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyApplication</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>

その他の展開オプションについては、サーブレット ベースの展開を参照してください。

于 2015-10-26T14:43:50.870 に答える