我正在使用Weld 2.0在Jetty 6.1上运行GWT应用程序。 得到下一个代码:
@SessionScoped
public class SessionContext implements Serializable {
@Inject
private HttpSession httpSession;
public SessionContext() {
super();
//at this point httpSession is null
}
}
我错过了什么,为什么不注入HttpSession?参考文献说Injecting the HttpSession will force the session to be created.
答案 0 :(得分:1)
更改
的定义public SessionContext() {
super();
//at this point httpSession is null
}
到
public SessionContext(HttpSession httpSession) {
super();
this.httpSession = httpSession;
//check session here
}
也使用构造函数注入
否则为httpSession
答案 1 :(得分:0)
最好使用@PostConstruct
注释其他方法,here:
初始化托管bean指定生命周期回调方法 CDI框架应该在依赖注入后调用但是 在课程投入使用之前。
这正是您完成注射的地方,但没有调用任何代码。
像这样:@PostConstruct
public void doMyStuff() {
//feel free to access your injections here they are not null!
}