2016-04-22 4 views
0

Ist es möglich, einen Session Listener (Implementierung von HttpSessionListener) als Spring Bean zu registrieren. Meine Arbeits Implementierung fügt den Hörer auf die Servlet-Kontexte in BootStrap.groovyGrails - SessionListener als Spring Bean registrieren

def init = { servletContext -> 
     servletContext.addListener(userLoginSessionListener) 
} 

aber dies bewirkt, dass meine Integrationstests mit einem UnsupportedOperationException zum Scheitern verurteilt (wird eine andere Frage für diese erstellen)

Jetzt habe ich folgendes in resources.groovy

userLoginSessionListener(UserLoginSessionListener) 

aber jetzt meine sessionCreated und sessionDestroyed Methoden werden nicht mehr ausgelöst wird.

Antwort

1

Musste die altmodische Route hinuntergehen. Die Bean-Definition und BootStrap.groovy-Konfiguration wurden entfernt und der Listener wurde über den EventWebXmlEnd-Handler in _Events.groovy hinzugefügt, der mit unseren Integrationstests gut funktioniert.

<listener> 
     <listener-class>com.example.UserLoginSessionListener</listener-class> 
</listener>