使用web.xml以编程方式启动jetty

时间:2016-10-14 14:20:46

标签: java eclipse jetty

我创建了一个eclipse maven项目并添加了jetty依赖项。接下来,我创建了一个简单的servlet和一个启动jetty服务器的类。这是我到目前为止所得到的:

package com.example.jetty;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;

public class App {
    public static void main(String[] args) throws Exception {
        Server server = new Server(80);
        ServletContextHandler servletContext = new ServletContextHandler(server, "/");
        servletContext.addServlet(MyServlet.class, "/");
        server.start();
    }
}

我的问题是,我看到的大多数教程都有一个web.xml来配置servlet等。我无法找到编程方法来完成其中的一些工作。我可以创建一个web.xml并仍然以编程方式启动我的jetty并以某种方式使用该web.xml进行配置吗?

更具体地说,我需要在web.xml中写入true。我没有找到任何方法以编程方式进行。

1 个答案:

答案 0 :(得分:7)

我将从您可能感兴趣的示例开始。如果您想使用web.xml编程方式Jetty服务器,那么您可以执行以下操作:

WebAppContext context = new WebAppContext();
context.setContextPath("/myWebApp");
context.setExtractWAR(false);
context.setDescriptor("/file/system/path/to/your/wab/app/WEB-INF/web.xml");
context.setResourceBase("/file/system/path/to/your/wab/app");
context.setConfigurationDiscovered(false);

HandlerList handlerList=new HandlerList();
handlerList.addHandler(webAppContext);

Server server = new Server(threadPool);
server.setHandler(handlerList);
server.start();

关于以编程方式配置,您可以尝试使用Servlet 3.x(当前Jetty 8.x版本Jetty)支持的9.x API,并且可以通过编程方式完全配置。