मैं एक उपयोगकर्ता वस्तु के लिए एक @Producer
विधि के साथ एक @SessionScoped @Named
सेम है:CDI अस्पष्ट निर्भरता
@Named @SessionScoped
public class UserBean implements Serializable
{
//...
@Named @Produces @LoggedIn @SessionScoped
public MyUser getCurrentUser() {return user;}
}
यह मेरा सेटअप में ठीक काम करता है (JBoss-7.1.1-अंतिम) और यह उपयोगकर्ता का उपयोग करने की कोई समस्या नहीं है #{currentUser.name}
के साथ जेएसएफ पृष्ठों के फ़ील्ड। क्वालीफायर org.jboss.seam.security.annotations.LoggedIn
है। अब मैं एक और @Named
बीन में एक क्षेत्र में इस प्रयोक्ता @Inject
हैं:
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()]]]
मुझे समझ नहीं आता पहले निर्भरता Managed Bean [class test.ejb.MyUser]
इस वर्ग के एक सरल @Entity
है:
@Named
public class FavBean implements Serializable
{
private @Inject @LoggedIn MyUser currentUser;
}
यह मैं त्रुटि देता है और एक ईएआरबी में एक ebb.jar में तैनात। एक कामकाज के रूप में मैं वर्तमान में UserBean
इंजेक्शन कर रहा हूं, वहां से उपयोगकर्ता को प्राप्त करें।
या इसके लिए 'क्वालीफायर' जोड़कर 'लॉग इनइन एनोटेशन' को संशोधित करें। ऐसा लगता है कि इसमें 'क्वालीफायर' नहीं है। –