server.setHandler(contextHandler);
server.setHandler(context);
Вы заменили contextHandler
на context
с этим кодом.
Попробуйте вместо этого ...
HandlerList handlers = new HandlerList();
handlers.addHandler(contextHandler);
handlers.addHandler(context);
handlers.addHandler(new DefaultHandler()); // to report errors if nothing above matches
server.setHandler(handlers);
Но это все равно не будет работать, как выожидать.Зачем?Поскольку у вас есть 2 разных контекста (contextHandler
и context
) в одном и том же contextPath /
.
Будет использован первый контекст в вашем HandlerList
, а следующий никогда не будет вызван.Зачем?Поскольку после ввода контекста вы не выходите из него (этот контекст ДОЛЖЕН служить ответом, даже ошибкой).
Вы можете просто изменить свой WebAppContext
, включив в него VaadinServlet
(устраняя необходимость вServletContextHandler
полностью)
например:
final WebAppContext context = new WebAppContext();
final ServletHolder servletHolder = new ServletHolder(new VaadinServlet());
context.addServlet(servletHolder, "/*");
Но, опять же, это кажется задом наперед, поскольку у вашего WebAppContext
нет базы ресурсов или объявленной войны, поэтому он ничего не делает для вас вВаш пример кода.
Если бы это был я, и я использую Embedded Jetty , я бы не стал использовать WebAppContext
полностью и просто придерживался только ServletContextHandler
.