Подтвердить что ты не робот

Использование web.xml для conf программно начатого причала

Я создал проект eclipse maven и добавил зависимость от причала. Затем я сделал простой сервлет и класс, который запускает сервер причала. Вот что я получил до сих пор:

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 для настройки сервлетов и т.д. Я не могу найти программные способы сделать некоторые из них. Могу ли я создать web.xml и по-прежнему запускать свой причал программно и каким-то образом использовать этот web.xml для конфигурации?

Чтобы быть более конкретным, мне нужно написать true в web.xml. Я не нашел способ сделать это программно.

4b9b3361

Ответ 1

Я начну с примера, который вам интересен. Если вы хотите использовать web.xml с программным способом Jetty server, то вы можете сделать следующее:

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();

Что касается программной конфигурации, вы можете попробовать использовать API Servlet 3.x, который поддерживается от Jetty 8.x (текущий Jetty version 9.x) и может быть полностью настроен программно.