2017-08-02 73 views
0

我正在使用Jboss JBoss EAP 6.4.5.GA (AS 7.5.5.Final-redhat-3),並且我在web.xml中遇到了問題。 這裏是web.xml中的一部分,我有:Jboss以錯誤順序啓動servlets

<servlet> 
    <servlet-name>Servlet1</servlet-name> 
    <servlet-class>classPath.servlet1</servlet-class> 
    <load-on-startup>0</load-on-startup> 
</servlet> 
<servlet> 
    <servlet-name>Servlet2</servlet-name> 
    <servlet-class>classPath.servlet2</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

當我啓動JBoss服務器,我看到我的配置是不會保留,因爲有時Servlet2 Servelt1之前啓動,但是這不應該發生。 當我刪除數據,tmp和日誌目錄,然後啓動JBOSS它啓動Servlet2之前的Servlet1,但在JBOSS重新啓動後,我看到Servlet2在Servlet1之前運行。

有人曾經有過這種情況或類似的情況,可以幫助我嗎? Maybye有一個特殊的標籤,它可以告訴JBOSS「Servlet1後exaclly開始Servelet2」這不是'load-on-startup'」。

*編輯* 我要補充這個局面有趣的信息。在調試模式中新鮮啓動(刪除這些目錄)第一個init()方法在Servlet1中啓動,然後在Servlet2中啓動,但在JBOSS重啓後,只啓動Servlet2中的init(),我不知道爲什麼...

+0

它可以使用@WebFilter註解 – sForSujit

+0

@WebFilter不使用過濾器而不使用Servlet? – Kacu

+0

以編程方式可以禁止servlet2啓動。即通過檢查會話變量是否存在以及是否已設置,啓動servlet2部分,因此在執行期間,認爲servlet2試圖開始,通過檢查會話變量條件,流程停止 –

回答

0

也許你可以檢查一下"<load-on-startup>0</load-on-startup>"究竟意味着在web.xml中的 。

我記得這個attrib ute不僅意味着序列,而且還意味着其他的東西,尤其是當它爲0時。

+0

你根本沒記得這一點...... –