これは私のセッション ハンドラ クラスです。
public class Sessionlistener implements HttpSessionListener {
@ManagedProperty(value="#{sessionCount}")
private SessionInfo info;
@Override
public void sessionCreated(HttpSessionEvent event) {
info.setActive(info.getActive() + 1);
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
info.setActive(info.getActive() - 1);
}
}
..そしてこれは私のsessionCount Beanです:
@ApplicationScoped
@ManagedBean(name="sessionCount",eager=true)
public class SessionInfo {
private int active = 0;
@PostConstruct
public void init() {
System.out.println("sessionCount object created");
}
public void setActive(int active) {
this.active = active;
}
public int getActive() {
return active;
}
}
エラーは次SessionListener
のとおりです。初期化するとき@ManagedProperty
、はまだ作成されていないnull
ため、注入されます。sessionCount
どうすればこれを解決できますか? 一方、クラスにsessionCount
フィールドを入れてクラスをBeanにすると、 経由でアクセスできなくなります。SessionListener
SessionListener
@ApplicationScoped
#{applicationContext.listenerBean.active}
ここでの実際の問題は、クラスがHttpSessionlistener
インスタンスの場合、それをアプリケーション コンテキスト オブジェクトとして使用できないかということです。本当ですか