Sun Java System Application Server Platform Edition 8.2 发行说明

无法使用基于 Servlet 2.4 的 web.xml(包含空 <load-on-startup\> 元素)来部署 WAR。(ID 6172006)

web.xml 中可选的 load-on-startup servlet 元素表示在启动声明相关 servlet 的 Web 应用程序时,将加载及初始化此 servlet。

此元素的可选内容是一个整数,用于表示该 servlet 相对于 Web application 的其他 servlet 而被装入和初始化的顺序。只要该 servlet 在包含它的 Web 应用程序启动期间被加载和初始化,空的 <load-on-startup\> 就表示顺序无关紧要。

web.xml 的 Servlet 2.4 模式不再支持空的 <load-on-startup\>,这意味着在使用基于 Servlet 2.4 的 web.xml 时,必须指定一个整数。如果像在 <load-on-startup/\> 中一样指定空的 <load-on-startup\>,则 web.xml 将无法针对 web.xml 的 Servlet 2.4 模式进行验证,从而导致 Web 应用程序的部署失败。

向下兼容性问题。在基于 Servlet 2.3 的 web.xml 中仍可以像往常那样指定空的 <load-on-startup\>

解决方法

使用基于 Servlet 2.4 的 web.xml 时,指定 <load-on-startup\>0</load-on-startup\> 以表示 servlet 的装入顺序无关紧要。