2014-11-03 66 views
2

有沒有方法可以指定web.xml和web-fragment.xml中定義的ServletContextListeners的執行順序?Web碎片和web.xml中Servlet偵聽器的執行順序

我在我的應用程序兩個監聽器: 首先是在web-fragment.xml之

<listener> 
    <listener-class>com.example.RunFirst</listener-class> 
</listener> 

,第二個在我的應用程序的web.xml中

<listener> 
    <listener-class>com.example.RunSecond</listener-class> 
</listener> 

另行申報我的web-fragment包含以下訂購內容:

<ordering> 
    <before> 
    <others /> 
    </before> 
</ordering> 

,但RunSecond仍然在RunFirst之前執行。任何想法如何我可以改變這個秩序?

+0

以什麼順序在你的web.xml中定義你的監聽器? – 2014-11-03 16:09:05

+0

RunFirst偵聽器僅在我的片段的web-fragment.xml中定義 – cpetry 2014-11-03 16:12:06

+0

並且在您的web.xml的哪一部分添加了此web-fragment? – 2014-11-03 16:12:47

回答

2

實際上根本不可能。

正如oracle文檔所述:「web.xml描述符總是先處理。」

你可以做的是用你的RunSecond監聽器創建另一個web-fragment.xml,並使用「排序」設置片段之間的相對順序。

希望它有幫助。