簡體   English   中英

EJB模棱兩可的依賴關系:如何指定要注入的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM