Использование 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. Я не нашел способ сделать это программно.
Ответы
Ответ 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
) и может быть полностью настроен программно.