WELD-001408 Unsatisfied dependencies for type [LdapService] with qualifiers [@Named] at injection point
Hallo, ich versuche zum bereitstellen einer EAR, um meine Weblogic server 12c (12.1.3) ohne Erfolg.
Meine LdapService Klasse ein Stateless EJB mit default-Konstruktor ohne Argumente (Dieses Projekt ist ein ejb-Paket)
@Stateless
public class LdapService {
@Inject
public LdapService() {
} ...
Ich versuche, um es zu injizieren, um eine andere Klasse wie:
public class UserService {
private static final Logger logger = LoggerFactory.getLogger(UserService.class.getCanonicalName());
@Inject
private LdapService registerService;
@EJB(beanName = "Janus-session-1.0.jar#UserBean")
private TUserBean userBean;
...}
Den bean annotiert mit @EJB-es ist anerkannt von der CDI, aber die impfstelle wirft mir diese Fehlermeldung über die @Inject:
Bereitstellung ist fehlgeschlagen. Die Botschaft war: org.jboss.Schweißnaht.Ausnahmen.DeploymentException:
SCHWEIßEN-001409 Mehrdeutige Abhängigkeiten für Typ [LdapService] mit Qualifikation
[@Default] at injection point [[Feld] @Inject net.ab4cus.Projekt.business.TransactionService.registerService].
Mögliche Abhängigkeiten [[Session-bean [Klasse net.ab4cus.Projekt.auth.LdapService
mit qualifiers [@Alle @Default]; die lokalen Schnittstellen sind [LdapService]]
Wenn in LdapService die Verwendung von @Named("LdapService") und dann an der impfstelle verwenden:
@Inject @Named("LdapService") private LdapService registerService;
Dann bekam ich diese Fehlermeldung:
Bereitstellung ist fehlgeschlagen. Die Botschaft war: org.jboss.Schweißnaht.Ausnahmen.DeploymentException: WELD-001408 Unsatisfied
dependencies for type [LdapService] with qualifiers [@Named] bei der Injektion
Punkt [[Feld] @Inject @Named net.ab4cus.Projekt.business.UserService.registerService]
Wie kann ich dieses Problem lösen Fehler aus und entfernen Sie die Zweideutigkeit? oder was ist der richtige Weg, das zu tun, @Inject in andere Bohnen?
Danke.
EDIT----------------------------------------------------------------------------------------------
Habe ich es geschafft zum bereitstellen der EAR, aber habe jetzt andere Fehler in der CDI.
Mein OHR Inhalt: EJB-Modul (mit den Bohnen und alle, die business-Logik) und zwei KRIEGE (Eine für WebServices und eine für eine Web-FronEnd mit Vaadin).
Die WebServices sind Erholsamen und egal was WS ich versuche zu verbrauchen, bekomme immer diese Fehlermeldung:
java.lang.NullPointerException
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:94)
at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76)
at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:314)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604)
Truncated. see log file for complete stacktrace
Wenn ich versuche mit dem frontend, jedes mal, wenn ein bean ist der Zugang bekomme ich diesen Fehler (für jede bean):
SEVERE:
java.lang.IllegalArgumentException: Can not set net.ab4cus.project.session.TUserBean field net.ab4cus.project.business.UserService.userBean to net.ab4cus.project.session.UserBean_o7pydo_NoIntfViewImpl
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
Ich versuche, diese zu lösen, aber jetzt keine Ahnung :/
@Inject
von der LdapService Konstruktor, ist es nicht notwendig.Danke für die Antwort @Gas, habe ich das schon versucht und bekomme den gleichen Fehler:
Deployment failed. The message was: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [LdapService] with qualifiers [@Named] at injection point [[field] @Inject @Named net.ab4cus.janus.business.UserService.registerService].
übrigens, wenn ich nicht kommentieren LdapService mit @Inject in den Konstruktor, wenn ich versuche, eine Instanz der bean (hochladen der Krieg) bekomme ich nur eine null bei der injection-point :/Sie sollten auch entfernt
@Named
, da es nur verwendet um bean-erhältlich in JSP/JSF. Es kann verwendet werden, in der bean-Klasse oder producer-Methode, nicht mit @Inject
.Entfernt die
@Named
und die @Inject
im LdapService aber bekomme immer noch die SCHWEIßNAHT-001409 Mehrdeutige Abhängigkeiten. Wenn ich entfernen Sie die Injektion vollständig von dem Projekt, das OHR setzt erfolgreich :/Sieht aus wie eine etwas verschiedene Probleme, wie setzt es nun erfolgreich. Ich würde vorschlagen, zu erstellen Sie zwei separate Fragen für WS-problem, andere für front-end-problem, da Sie verschiedene Ursachen haben kann und Lösungen.
InformationsquelleAutor Cosas | 2014-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung für mein erste Fehler war:
-Entfernen der @Stateless und @Inject aus LdapService und der default-Konstruktor
Erstellen Sie eine Schnittstelle für LdapService und @Inject dieses interface UserService
href="http://meta.stackexchange.com/questions/64068/is-cross-posting-a-question-on-multiple-stack-exchange-sites-permitted-if-the-qu" title="cross-posting eine Frage auf mehrere stack-exchange-Standorte zulässig, wenn die qu">meta.stackexchange.com/questions/64068/...
der link, den Sie geteilt spricht, wenn(wenn überhaupt) eine Frage ist ein guter Kandidat für die cross-posting innerhalb von stackexchange-Seiten.Ich Stimme völlig zu es in dem Sinne, dass eine Frage sollte nicht gestellt werden, die in mehr als einem forum innerhalb von stack exchange.Aber es spricht nicht über die Einschränkung eines von der Buchung dieselbe Frage, die auf Foren, die nicht Eigentum von stackexchange(z.B. coderanch und oracle in diesem Fall). Infact die Buchung von Fragen in verschiedenen Gemeinden geben mehr Aufschluss auf die Frage, wie auch auf die Antworten.Ich denke mal dein downvote hier und Kommentare, die auf diesen Webseiten sind unangebracht.
InformationsquelleAutor Cosas