0

我正在研究 EJB 1.0 应用程序。我想在 jboss 服务器启动时启动我的计划 servlet。 <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 会使您的应用程序需要很长时间才能加载,这应该意味着您的初始化代码需要花费那个时间。

当您谈到调度 servlet 时,我想您可能在调度初始化逻辑中有阻塞逻辑。

init 调用应该只设置 servlet,并且应该尽快返回以缩短应用程序的启动时间。您需要管理自己的调度线程,而不是将 init 调用线程用于初始化以外的其他事情。

于 2012-07-10T18:26:26.517 回答