0

これは私のセッション ハンドラ クラスです。

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にすると、 経由でアクセスできなくなります。SessionListenerSessionListener@ApplicationScoped#{applicationContext.listenerBean.active}

ここでの実際の問題は、クラスがHttpSessionlistenerインスタンスの場合、それをアプリケーション コンテキスト オブジェクトとして使用できないかということです。本当ですか

4

0 に答える 0