2013-03-22 32 views
7

Tôi muốn kiểm tra ServletContextListener của mình bằng cầu nối được nhúng. Nó gọi contextDestroyed trên máy chủ dừng nhưng không gọi contextInitialized khi khởi động máy chủ. Làm thế nào tôi có thể sửa chữa nó?Sử dụng ServletContextListener với 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

Các bạn đã cố gắng thiết lập các đường dẫn ngữ cảnh (và tùy chọn một cuộc chiến tranh): 'webapp.setContextPath ("/"); webapp.setWar (warURL); '). Nếu không, không bối cảnh nào * thực sự * được triển khai –

+0

@BGR setContextPath ("/") không được trợ giúp. Tôi không có bất kỳ tệp web.xml nào. –

+0

@BGR, Nhưng myListener.contextDestroyed() hoạt động như được thiết kế. –

Trả lời

1

Tôi đã có một vấn đề tương tự với Jetty 9.3.10

Bạn đã cố gắng thiết lập các loại listener mở rộng cho đúng? Nếu nó được thiết lập là false (mặc định), triển khai ServletContextListener sẽ không được xem xét trong org.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

webapp.getServletContext().setExtendedListenerTypes(true); 
Các vấn đề liên quan