私はここに何かが欠けていると確信しています..しかし、私はセッションスコープのEJBを持っています:
@javax.inject.Named
@javax.ejb.Stateful
@javax.enterprise.context.SessionScoped
public class Authenticator implements Serializable
{
...
HTTP セッションごとに、この EJB の異なるインスタンスが表示されると思いますか?
ただし、複数のブラウザー (異なるマシン上を含む) から JSF ページにアクセスすると、
#{authenticator.hashCode()}
それらのすべて(そしてもちろんクラスのメンバー属性)で同じです。これはなぜでしょうか?( @Stateful アノテーションを削除して実験しましたが、同じことが当てはまります)。
JBoss AS 7.1.0 を使用しています。
編集:Authenticatorでメソッドを作成することを発見しました:
public void getHashCode()
{
return hashCode();
}
ELでこれを次のように参照します
#{authenticator.hashCode()}
Bean のさまざまなインスタンスに実際にアクセスしていることを示しています。しかし、これはなぜですか?これら 2 つの EL 式の結果が異なる理由がわかりません。