2013-03-22 8 views
7

Я хочу протестировать мой ServletContextListener с встроенным причалом. Он вызывает contextDestroyed на остановке сервера, но не вызывает contextInitialized при запуске сервера. Как я могу это исправить?Использование ServletContextListener с Jetty

Server server = new Server(PORT); 
ServletContextListener myListener = ...; 
WebAppContext webapp = new WebAppContext(); 
webapp.addEventListener(myListener); 
webapp.setServer(server); 
server.setHandler(webapp); 
server.start(); -> doesnt call myListener.contextInitialized() 

server.stop(); -> call myListener.contextDestroyed() 
+0

Вы пробовали настройки контекста (и, возможно, войны): 'webapp.setContextPath («/»); webapp.setWar (warURL); '). Если нет, контекст не * действительно * развернут –

+0

@BGR setContextPath ("/") не помогло. У меня нет файла web.xml. –

+0

@BGR, но myListener.contextDestroyed() работает так, как было разработано. –

ответ

1

У меня была аналогичная проблема с Jetty 9.3.10

Вы пробовали настройки расширенные типы слушателя истина? Если он установлен в значение False (по умолчанию), реализации контекста сервлета не будут рассматриваться в org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

webapp.getServletContext().setExtendedListenerTypes(true); 
Смежные вопросы