2016-12-12 3 views
0

i have 2 EJB implémente même interface, j'ai quelques qualifications:multiples @Qualifier injection EJB

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

} 

et

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

} 

exemple des EJB:

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

ou

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

i injectent un de ceux dans une classe:

public class TestResource {

@MetrilioConnector 
@Inject 
IConnectorService metrilioService; 

et mon erreur:

Causée par: org.jboss.weld.exceptions.DeploymentException: WELD- 001408: Dépendances insatisfaites pour le type IConnectorService avec des qualificatifs @MetrilioConnector au point d'injection [UnbackedAnnotatedField] @MetrilioConnector @Inject com.real.hr.rest.TestResource.metrilioService at com.real.hr.rest.TestResource.metrilioServ ice (TestResource.java:0) WELD-001475: Les beans suivants correspondent par type, mais aucun n'a de qualificatif correspondant: - Session bean [classe com.real.hr.services.MetrilioServiceImpl avec des qualificatifs [@MetrilioConnector @Any]; les interfaces locales sont [IConnectorService], - Session bean [classe com.real.hr.services.PayEseServiceImpl avec des qualificatifs [@PayEseConnector @Any]; interfaces locales [IConnectorService]

ce que je fais mal ?, avec un @Qualifier il travaille

Répondre

0

Enfin, l'exemple est OK l'erreur a été renommé i un paquet et la dépendance était toujours présent pour que vous puissiez utiliser Exemple pour rendre un qualificateur simple pour EJB implémente la même interface, normalement @Local n'est pas obligatoire ...