2016-12-12 34 views
0

i 2 haben gleiche EJB-Schnittstelle implementiert, habe ich einige Qualifier:multiple @Qualifier EJB Injektion

@java.lang.annotation.Documented 
@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.METHOD, ElementType.TYPE,ElementType.FIELD}) 
@javax.inject.Qualifier 
public @interface PayEseConnector { 

} 

und

@java.lang.annotation.Documented 
@java.lang.annotation.Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.METHOD, ElementType.TYPE,ElementType.FIELD}) 
@javax.inject.Qualifier 
public @interface MetrilioConnector { 

} 

Beispiel für EJB:

@Stateless 
@PayEseConnector 
@Local 
public class PayEseServiceImpl implements IConnectorService { 

oder

@Stateless 
@MetrilioConnector 
@Local 
public class MetrilioServiceImpl implements IConnectorService { 

i injizieren einer von denen in einer Klasse:

public class TestResource {

@MetrilioConnector 
@Inject 
IConnectorService metrilioService; 

und meine Fehler:

Verursacht durch: org.jboss.weld.exceptions.DeploymentException: Schweiss- 001408: Unbefriedigend Abhängigkeiten für Typ IConnectorService mit Qualifier @MetrilioConnector an der Injektionsstelle [UnbackedAnnotatedField] @MetrilioConnector @Inject com.real.hr.rest.TestResource.metrilioService bei com.real.hr.rest.TestResource.metrilioServ ice (TestResource.java.com) WELD-001475: Die folgenden Beans entsprechen dem Typ, aber keine haben übereinstimmende Qualifier: - Session-Bean [Klasse com.real.hr.services.MetrilioServiceImpl mit Qualifiern [@MetrilioConnector @Any]; lokale Schnittstellen sind [IConnectorService], - Session-Bean [Klasse com.real.hr.services.PayEseServiceImpl mit Qualifiern [@ PayEseConnector @Any]; lokale Schnittstellen [IConnectorService]

, was ich falsch tue ?, mit einem @Qualifier es funktioniert

Antwort

0

Schließlich wird das Beispiel OK ist der Fehler war ich ein Paket umbenannt und die Abhängigkeit war noch vorhanden, so können Sie diese verwenden Beispiel, um einen einfachen Qualifier für EJB zu erstellen, implementiert dieselbe Schnittstelle, normalerweise ist @Local nicht zwingend erforderlich ...