Ecco la situazione.WELD-001408 Dipendenze insoddisfatte quando si iniettano EJB che implementano interfacce
ho le seguenti interfacce:
public interface Parent { }
public interface ChildOne extends Parent { }
public interface ChildTwo extends Parent { }
e 2 EJB:
@Stateless
public class FirstBean implements ChildOne { }
@Stateless
public class SecondBean implements ChildTwo { }
E anche questo CDI Bean:
@Named
@SessionScoped
public class TestController implements Serializable {
@Inject
private FirstBean firstBean;
@Inject
private SecondBean secondBean;
}
durante il tentativo di distribuire questo su Glassfish 3.1 ottengo la seguente eccezione:
Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [FirstBean]
with qualifiers [@Default] at injection point [[field] @Inject private com.test.controllers.TestController.firstBean]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [FirstBean]
with qualifiers [@Default] at injection point [[field] @Inject private com.test.controllers.TestController.firstBean]
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:305)
Quando entrambi gli EJB implementano l'interfaccia Parent
, l'eccezione è la stessa.
Inoltre, ho provato ad aggiungere qualificatori, ma questo non ha cambiato nulla.
Grazie mille! Davvero una buona spiegazione! E mi sono già imbattuto in quell'eccezione "Impossibile convertire ejbRef per ejb ...", semplicemente non sapevo che fosse un problema noto. – jFrenetic
L'ho controllato ancora una volta. Ho provato a iniettare quei bean per riferimento all'interfaccia come suggerivi.E sto ancora ricevendo questa eccezione "Dipendenze insoddisfatte ..." durante l'implementazione. Ho persino annotato le interfacce con @Local. Ancora non funziona. – jFrenetic
L'ho provato ieri e ha funzionato per me, inoltre ha molto senso. Ad ogni modo, lo riproverò di nuovo quando torno a casa. –