[英]EJB Ambiguous dependencies: How to specify which class to Inject
我試圖像這樣在EJB中注入一個對象:
@Stateless
@Path("/auth")
public class Login {
@Inject
UsernamePasswordCredentials credentials;
問題在於UsernamePasswordCredentials有一個子類,並且兩個類具有相同的限定符,這會導致模棱兩可的依賴關系。 如何指定要注入父類而不是子類的實例? 錯誤消息如下所示:
帶限定符@Default的UsernamePasswordCredentials類型的不明確依賴項
具有限定符[@Any @Default]的托管Bean [類org.picketlink.idm.credential.UsernamePasswordCredentials],
帶有限定符[@Any @Default]的托管Bean [類org.picketlink.idm.credential.TOTPCredentials]
您可以使用編程查找機制來限制所需bean的實際類型:
@Inject
Instance<UsernamePasswordCredentials> credInst;
public UserNamePasswordCredentials getCredentials() {
return credInst.select(UsernamePasswordCredentials.class).get();
}
除此之外,我不是Picket Link專家,但是我認為您在框架方面做錯了。 Picket Link CDI集成非常精細,因此我有點困惑您在標准用法中會遇到這樣的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.