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 :/

Entfernen @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

Schreibe einen Kommentar