我有一个jar文件,其中包含Servlets
,Filters
和web-fragment.xml
文件夹中定义的META-INF
文件。我在第二次战争项目中包括这个罐子。 war项目的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时无法正常工作,我是否在这里或其他地方缺少任何类路径/类加载器相关配置?请帮我找出来。
谢谢。