2013-07-20 3 views
1

Я пытаюсь реализации HttpSessionListener интерфейс со встроенным причалу с прокси-сервлет, я зарегистрировал SessionListener, но не получаю вызывается вообще, здесь код,Embedded молы реализации HttpSessionListener

public class JettyProxy { 

    public static void main(String[] args) throws Exception { 
     Server server = new Server(); 
     CustomProxyServlet customProxyServlet = new CustomProxyServlet(); 


     ServerConnector connector = new ServerConnector(server); 
     connector.setPort(8888); 
     server.addConnector(connector); 

     ConnectHandler proxy = new ConnectHandler(); 

     server.setHandler(proxy); 

     ServletContextHandler context = new ServletContextHandler(proxy, "/", 
       ServletContextHandler.SESSIONS); 
     ServletHolder proxyServlet = new ServletHolder(customProxyServlet); 

     context.addServlet(proxyServlet, "/*"); 

     if (context.getSessionHandler() == null) { 
      System.out.println("Session handler is null"); 
     } else { 
      System.out.println("Session handler is not null"); 
     } 

     if (context.getSessionHandler().getSessionManager() == null) { 
      System.out.println("Managaer it null"); 
     } else { 
      System.out.println("Manager is not null"); 
     } 

     context.getSessionHandler().addEventListener(new CustomSessionHandler()); 

     server.start(); 
     server.join(); 
    } 

} 

SessionHandler не null, события создания сеанса не запускаются, пожалуйста, помогите мне, какова процедура получения сеансовых событий?

ответ

0

у вас должен быть SessionManager. я обычно использую: org.eclipse.jetty.server.session.HashSessionManager.HashSessionManager() и org.eclipse.jetty.server.session.SessionHandler.SessionHandler (SessionManager менеджер)

, то вы должны установить обработчик для контекста

context.setHandler(sessionHandler); 

sessionHandler.addEventListener("Your Session Listener");