【问题标题】:Class implementing ServletContainerInitializer in web.xml在 web.xml 中实现 ServletContainerInitializer 的类
【发布时间】:2011-10-06 21:46:23
【问题描述】:

您能否在web.xml 文件中指向实现ServletContainerInitializer 接口的类,还是必须在META-INF/services/javax.servlet.ServletContainerInitializer 下添加一个文件才能让J2EE 服务器接收它?

如果可以通过web.xml 文件,请说明方法。

【问题讨论】:

    标签: java jakarta-ee web.xml


    【解决方案1】:

    我检查了Java Servlet Specification 3.0,但没有发现任何可以通过web.xml 配置它的线索。我认为唯一的方法是 META-INF/services/javax.servlet.ServletContainerInitializer 文件。

    请注意META-INF/services/javax.servlet.ServletContainerInitializer 是一个文件(不是目录),它必须包含初始化程序的完全限定名称,例如:

    com.example.MyServletContainerInitializer
    

    它也可能在战争中(用 Tomcat 7.0.21 测试)。

    这是一个完整的例子:http://nullhaus.com/2011/03/using-servlets-3-0-servletcontainerinitializer/

    【讨论】:

    • 谢谢...我已经知道这一点,但希望它可以在 web.xml 中完成。无论如何,我都会接受你的帖子。
    • 为了进一步确认,不可能web.xml 中配置ServletContainerInitializer。来自 Servlet 3.0 Spec, 8.2.4:“在容器/应用程序启动时,容器通过 jar 服务 API 查找 ServletContainerInitializer 的实例。框架提供了ServletContainerInitializer 必须在 jar 文件的 META-INF/services directory 中捆绑一个名为 javax.servlet.ServletContainerInitializer 的文件,根据 jar 服务 API,该文件指向 ServletContainerInitializer 的实现类。"
    • nullhaus.com 上的死链接,这是该页面现在所在的位置:piotrnowicki.com/2011/03/…
    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2012-10-05
    • 2012-06-02
    • 2017-10-01
    • 2018-09-20
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多