0

EJB 1.0 アプリケーションに取り組んでいます。そのために、jbossサーバーの起動時にスケジュールサーブレットを起動したいと考えています。 <load-on-startup>1</load-on-startup>私の中でweb.xml。このタグをアプリケーションに追加した後、開始までに 45 分近くかかりました。私はその問題を知りません。

ここに私のweb.xmlファイルがあります

前もって感謝します。

<web-app id="WebApp"> 
    <display-name></display-name>
    <servlet>
        <servlet-name>Main</servlet-name>
        <display-name>Main</display-name>
        <servlet-class>control.Main</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>TimerLoader</servlet-name>
        <display-name>TimerLoader</display-name>
        <servlet-class>timer.TimerLoader</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>SchedulerMain</servlet-name>
        <display-name>SchedulerMain</display-name>
        <servlet-class>admin.SchedulerMain</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>FileDownload</servlet-name>
        <display-name>FileDownLoad</display-name>
        <servlet-class>control.FileDownload</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Main</servlet-name>
        <url-pattern>/Main</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TimerLoader</servlet-name>
        <url-pattern>/TimerLoader</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>SchedulerMain</servlet-name>
        <url-pattern>/SchedulerMain</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>FileDownload</servlet-name>
        <url-pattern>/FileDownLoad</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
        <welcome-file>/Main</welcome-file>
    </welcome-file-list>
    <resource-ref>
        <res-ref-name>jdbc/TEST5</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>
4

1 に答える 1

1

load-on-startup を 1 に設定するだけでアプリケーションの読み込みに時間がかかる場合は、コードの初期化に時間がかかることを意味するはずです。

あなたがスケジュール サーブレットについて話しているように、スケジュールの初期化ロジックにブロッキング ロジックがある可能性があることをゲストに伝えたいと思います。

init 呼び出しは、サーブレットをセットアップするだけで、アプリの起動時間を改善するためにできるだけ早く返す必要があります。スケジューリングスレッドを自分で管理し、初期化以外の目的で init 呼び出しスレッドを使用しないようにする必要があります。

于 2012-07-10T18:26:26.517 に答える