1

Jetty6.1とWeld2.0で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.

4

2 に答える 2

1

の定義を変更する

public SessionContext() {
        super();
        //at this point httpSession is null
}

public SessionContext(HttpSession httpSession) {
        super();
        this.httpSession = httpSession;
        //check session here
}

コンストラクタインジェクションも使用する

それ以外の場合は、セッターメソッドを提供しますhttpSession

于 2013-03-27T11:38:10.020 に答える
0

@PostConstruct他のメソッドに注釈を付けるために使用することをお勧めします。ここに次のようなものがあります。

マネージドBeanの初期化では、依存性注入後、クラスがサービスを開始する前にCDIフレームワークが呼び出す必要があるライフサイクルコールバックメソッドを指定します。

これはまさにインジェクションが行われる場所ですが、コードは呼び出されていません。

このような :

@PostConstruct
public void doMyStuff() {
  //feel free to access your injections here they are not null!
}
于 2014-08-26T11:00:58.370 に答える