2013-03-22 18 views
7

埋め込みjettyを使用してServletContextListenerをテストしたいとします。サーバーの停止時にcontextDestroyedを呼び出しますが、サーバーの起動時にcontextInitializedを呼び出しません。どうすれば修正できますか?JettyでServletContextListenerを使用する

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

私は

はあなたがtrueに拡張されたリスナーのタイプを設定してみまし桟橋9.3.10と同様の問題がありましたか?それがfalse(デフォルト)に設定されている場合 、のServletContextListener実装はorg.eclipse.jetty.server.handler.ContextHandler.Context#checkListener

webapp.getServletContext().setExtendedListenerTypes(true); 
関連する問題