我有一个带有一组的 jar 文件Servlets
,Filters
以及一个在文件夹web-fragment.xml
内定义的META-INF
文件。我将这个罐子包括在我的第二个战争项目中。战争项目有 web.xml metadata-complete=false
,我正在使用 gradle 来构建项目。
如果我将战争部署到独立的 servlet 容器 Jetty 或 Tomcat 中,它会正确找到 web-fragment.xml 并且网页正在正确加载。但是,当我自己进行 Jetty 设置以进行集成测试时,这并没有发生。
我使用的 Jetty API 如下所示,
_server = new Server(8080);
_server.setStopAtShutdown(true);
WebAppContext webAppContext = new WebAppContext();
webAppContext.setContextPath("/");
webAppContext.setParentLoaderPriority(true);
webAppContext.setResourceBase("src/main/webapp");
_server.setHandler(webAppContext);
_server.start();
默认情况下,WebAppContext
该类使用以下配置,从中我可以看到FragmentConfiguration
。
public static final String[] DEFAULT_CONFIGURATION_CLASSES =
{
"org.eclipse.jetty.webapp.WebInfConfiguration",
"org.eclipse.jetty.webapp.WebXmlConfiguration",
"org.eclipse.jetty.webapp.MetaInfConfiguration",
"org.eclipse.jetty.webapp.FragmentConfiguration",
"org.eclipse.jetty.webapp.JettyWebXmlConfiguration"
} ;
为什么当我自己使用 Jetty API 时它不起作用,我是否在这里遗漏了任何与类路径/类加载器相关的配置或其他东西?请帮我找出来。
谢谢你。