关键报错信息
java.lang.IllegalStateException: Error starting child
This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.
解决方法
add <absolute-ordering /> tag to your web.xml just under the <display-name> tag. should work.
出现原因
由于Servlet 3.0 技术支持 Web 片段,因此您可以将文件模块化。Web 应用程序仍可以具有传统的单片文件,也可以具有包含一个或多个 Web 片段的逻辑分区文件。web.xmlweb.xmlweb.xml
但是,由于Servlet 3.0 使您能够模块化部署描述符,因此处理这些描述符的顺序可能很重要。例如,应用程序的描述符的处理顺序会影响调用 servlet、侦听器和筛选器的顺序。使用 Servlet 3.0,您可以指定处理部署描述符的顺序。
Servlet 3.0 支持部署描述符的绝对排序和相对排序。使用文件中的元素指定绝对排序。使用文件中的元素指定相对排序。<absolute-ordering>web.xml<ordering>web-fragment.xml
例如,假设您的应用程序包含两个Web 片段 , 和 ,并且还包括一个文件。您可以通过在应用程序中的文件中指定以下内容来声明描述符的绝对顺序:MyFragment2MyFragment3web.xmlweb.xml
<web-app>
<name>MyApp</name>
<absolute-ordering>
<name>MyFragment3</name>
<name>MyFragment2</name>
</absolute-ordering>
...
</web-app>
参考网站
https://blog.csdn.net/pursueexcellence/article/details/89981690
https://www.oracle.com/technical-resources/articles/java/javaee6overview-part2.html
网友评论