我有一个 Web 项目,它有一个 \META-INF\services\javax.servlet.ServletContainerInitializer
文件,其内容指向实现 ServletContainerInitializer 接口(interface)的类的完全限定名称。我基本上遵循了此处给出的示例:http://nullhaus.com/2011/03/using-servlets-3-0-servletcontainerinitializer/
我在实现 ServletContainerInitializer 接口(interface)的类中放置了调试行,但它从来没有出现过。甚至没有默认构造函数...
我的应用文件夹结构如下:
\MyApp
\META-INF\services\javax.servlet.ServletContainerInitializer
\WEB-INF\classes\
... [list of classes and packages go here]
有什么我需要检查的想法吗??
注意 1:我的 Tomcat 从包含我的应用程序的展开的外部文件夹发布
注意 2:我从 Eclipse 启动我的 Tomcat - 如果这有区别的话!
最佳答案
好吧,我认为您需要将您的初始化程序类(以及它与服务相关的 META-INF 目录)包装到一个单独的 *.jar 中,并将其放在 WEB-INF/lib
.
这是一个 JAR 服务,所以我猜它可能与在 *.war 文件中发现服务的问题有关。此外,如果您将 META-INF 目录放在 WEB-INF/classes
中并设置 unpackWAR=false
Tomcat 的 server.xml
。
HTH.
关于java - Tomcat - 不会加载我的 META-INF\services\javax.servlet.ServletContainerInitializer 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692497/