LR 6.1 GA1の単一のLiferayプロジェクト(単一戦争)に2つのJSFポートレット(1つのICEfaces、1つのストレートJSF)があります。私のセッションBeanは@ManagedBeanと@SessionScopedでアノテートされて、私の顔-config.xmlには、私は別のWebページ上のポートレットのそれぞれを配置した同じセッションでセッションBeanを再インスタンス化します(2つのLiferayポートレットで)
<managed-bean>
<managed-bean-name>wtfBean</managed-bean-name>
<managed-bean-class>com.test.beans.WtfBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
が含まれています。私はBeanのコンストラクタ内のSystem.outに印刷します(そして私はプロセス全体をトレースしました)、私のbeanはの2回のインスタンス化されています。
セッションデータを共有するために他に何かしなければならないことはありますか?
ありがとうございました。
新しいJSF 2.xアノテーションをすでに使用している場合、なぜfaces-config.xmlに古いJSF 1.xの方法でBeanを登録していますか?通常のJSF環境(少なくともサーブレット)では、 'faces-config.xml'がアノテーションをオーバーライドすることに注意してください。私はポートレットを作成しませんが、おそらくそれは違うやり方やバグのようなものです。 Beanを登録する方法の1つを削除してみてください。 – BalusC