私はユーザーオブジェクトの@Producer
方法で@SessionScoped @Named
Beanを持っている:CDIあいまいな依存関係
@Named @SessionScoped
public class UserBean implements Serializable
{
//...
@Named @Produces @LoggedIn @SessionScoped
public MyUser getCurrentUser() {return user;}
}
これは私の設定(JBoss版-7.1.1-決勝)では正常に動作し、それがユーザーにアクセスするには問題ありませんJSFページのフィールドは#{currentUser.name}
です。修飾子はorg.jboss.seam.security.annotations.LoggedIn
です。今、私は別の@Named
豆のフィールドに、このユーザ@Inject
したい:
@Named
public class FavBean implements Serializable
{
private @Inject @LoggedIn MyUser currentUser;
}
これは私にエラーを与える:
org.jboss.weld.exceptions.DeploymentException:
WELD-001409 Ambiguous dependencies for type [MyUser] with qualifiers [@Default] at
injection point [[field] @Inject @LoggedIn test.FavBean.currentUser].
Possible dependencies [[Managed Bean [class test.ejb.MyUser] with qualifiers
[@Any @Default],
Producer Method [MyUser] with qualifiers [@Any @Default] declared as [[method]
@Named @Produces @LoggedIn @SessionScoped public test.UserBean.getCurrentUser()]]]
は、私はこのクラスは、単純な@Entity
ある最初の依存関係Managed Bean [class test.ejb.MyUser]
を理解していませんEARのebb.jarにデプロイされます。回避策として、私は現在UserBean
をそこから注入しています。
「LoggedIn」注釈に「Qualifier」を追加して変更します。それは '修飾子'がないようです。 –