【发布时间】:2014-11-03 16:07:32
【问题描述】:
有没有办法指定web.xml和web-fragment.xml中定义的ServletContextListeners的执行顺序?
我的应用程序中有两个监听器: 第一个在 web-fragment.xml 中声明
<listener>
<listener-class>com.example.RunFirst</listener-class>
</listener>
我的应用程序的 web.xml 中还有第二个
<listener>
<listener-class>com.example.RunSecond</listener-class>
</listener>
此外,我的网络片段还包含以下排序元素:
<ordering>
<before>
<others />
</before>
</ordering>
但 RunSecond 仍然在 RunFirst 之前执行。知道如何更改此顺序吗?
【问题讨论】:
-
在您的 web.xml 中以什么顺序定义您的侦听器?
-
RunFirst 监听器仅在我的片段的 web-fragment.xml 中定义
-
您在 web.xml 的哪个部分添加了这个 web-fragment?
-
我没有在 web.xml 中添加片段(顺便说一句:我不知道这是可能的)。我刚刚在我的 jar 的 META-INF 中添加了 web-fragments.xml,然后执行了侦听器。可惜来晚了。
-
好吧,AFAIK web.xml 中描述的过滤器和侦听器将按照它们出现的顺序加载和应用。从Shing Wai Chan's Weblog 看来,您似乎只能确定处理 web-fragment 的顺序,但处理 web.xml 和 web-fragment.xml 中配置的元素的顺序是特定于供应商的。
标签: java servlets servlet-3.0