0

我有一个带有一组的 jar 文件ServletsFilters以及一个在文件夹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 时它不起作用,我是否在这里遗漏了任何与类路径/类加载器相关的配置或其他东西?请帮我找出来。

谢谢你。

4

0 回答 0