1. ホーム
  2. jakarta-ee

[解決済み] サーブレットの <load-on-startup> 値は何を意味するのか

2022-04-20 13:12:57

質問内容

私はここで少し混乱しています。私たちのアプリケーションでは、いくつかのサーブレットが定義されています。以下は web.xml を使用します。

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>com.foo.framework.axis2.http.FrameworkServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet> 

私の理解では <load-on-startup> は正の整数でなければ自動的に読み込まれません。googleで調べてみたのですが、出てきた回答は私の混乱を助長するものばかりでした。

どのように解決するのですか?

レジン3.0 は、この動作を記録しています。

load-on-startupには(オプションで)整数値を指定することができる。0以上の値を指定した場合。 サーブレットが読み込まれる順番を示し、数値の大きいサーブレットが読み込まれます。 の後にロードされる。

JSP 3.1仕様 (JSR 340)の14-160ページでこのように書かれています。

要素 load-on-startup は、このサーブレットがロードされる(インスタンス化される)べきであることを示します。 を作成し、その init() が呼び出されます)。この 要素には、サーブレットを配置する順番を示す整数を指定する必要があります。 がロードされます。この値が負の整数である場合、あるいはこの要素が存在しない場合には コンテナは、いつでも好きなときにサーブレットをロードすることができる。この値が正である場合 整数または 0 の場合、コンテナはアプリケーションの起動時にサーブレットをロードし、初期化しなければならない。 をデプロイします。コンテナは,より小さい整数でマークされたサーブレットが,デプロイされたときに が先にロードされる。コンテナは を持つサーブレットのロードの順番は、同じ load-on-startup の値です。

JSRだけでなく、お使いのウェブコンテナのドキュメントも確認された方がよいでしょう。 違いがあるかもしれません。