Oto sytuacja.WELD-001408 Niezadowolone zależności podczas wstrzykiwania modułów EJB implementujących interfejsy
Mam następujące interfejsy:
public interface Parent { }
public interface ChildOne extends Parent { }
public interface ChildTwo extends Parent { }
i 2 EJB:
@Stateless
public class FirstBean implements ChildOne { }
@Stateless
public class SecondBean implements ChildTwo { }
a także to CDI Fasola:
@Named
@SessionScoped
public class TestController implements Serializable {
@Inject
private FirstBean firstBean;
@Inject
private SecondBean secondBean;
}
starając się wdrożyć ten na Glassfish 3.1 Otrzymuję następujący wyjątek:
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)
Gdy oba komponenty EJB implementują interfejs Parent
, wyjątek jest taki sam.
Próbowałem też dodawać kwalifikatory, ale to niczego nie zmieniło.
Dziękuję za tonę! Naprawdę dobre wyjaśnienie! I już wpadłem na ten wyjątek "Nie można przekonwertować ejbRef na ejb ...", po prostu nie wiedziałem, że to znany problem. – jFrenetic
Sprawdziłem to jeszcze raz. Próbowałem wstrzyknąć te EJB poprzez odniesienie do interfejsu, jak sugerowałeś.I nadal otrzymuję wyjątek 'Niezadowolonych zależności ...' podczas wdrażania. Nawet przypisałem interfejsy do @Local. Nadal to nie działa. – jFrenetic
Wypróbowałem to wczoraj i zadziałało to dla mnie, co więcej, miało to sens. W każdym razie, wypróbuję go ponownie, kiedy będę w domu. –