我正在使用 Wicket Auth/Roles,并遇到了与 这个主题帖 的OP一样的问题。
我需要在
很遗憾,这导致了...
我怀疑这不是最佳实践,因为现在我需要在其他方法中访问服务层,并且在每个这样的方法中添加
我的问题是:如何在每个请求中对session对象执行注入?(或者,如果总体来说这是一个不好的方法,那么如何在
我需要在
AuthenticatedWebSession
(用于用户认证)中访问DB服务层。我按照 Steve Flasby的建议 并执行了以下操作:@Override
public Session newSession(Request request, Response response) {
Session s = new MySession(request);
mInjector.inject(s);
return s;
}
很遗憾,这导致了...
java.lang.IllegalStateException: EntityManager is closed
这可能是因为我正在使用开放式会话,并且会话跨越了多个请求。
我通过将注入移动到AuthenticatedWebSession.authenticate
方法中来解决了这个问题。
@Override
public boolean authenticate(String username, String pass) {
Injector.get().inject(this);
...
}
我怀疑这不是最佳实践,因为现在我需要在其他方法中访问服务层,并且在每个这样的方法中添加
Injector.get().inject(this)
似乎不是一个好主意。我的问题是:如何在每个请求中对session对象执行注入?(或者,如果总体来说这是一个不好的方法,那么如何在
AuthenticatedWebSession
中访问服务层?)
Stateless
bean吗? - Dmitry Zagorulkin