[primavera 3.0.5]
[jboss 5.1]

Tengo varias clases etiquetados como @Service, que implementa thet misma interfaz.

Por ejemplo,

@Service(value="test1") 
public TestImpl1 implements Test {} 
@Service(value="test2") 
public TestImpl2 implements Test {} 

Siguiente, tengo la siguiente estructura

public SomeClass { 
@Autowired 
@Qualifier("test1") 
Test test1; 
@Autowired 
@Qualifier("test2") 
Test test2; 

Me estoy haciendo una excepción (en implementación)

10:36:58,277 ERROR [[/test-web]] Servlet /test-web threw load() 
exception 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No 
unique bean of type [pl.tests] is defined: expected single matching 
bean but found 2: [test1, test2] 
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.doReso lveDependency(DefaultListableBeanFactory.java: 
796) 
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolv eDependency(DefaultListableBeanFactory.java: 
703) 
        at 
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostPro cessor 
$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java: 
474) 

Alguien sabe cómo solucionar esto?

T.

¿Qué es pl.tests ?
lo siento, pl.pruebas.SomeClass

OriginalEl autor user6778654 | 2011-02-11

1 Comentario

  1. 4

    Un par de opciones:

    • Uso @Resource(name="test1") en el punto de inyección
    • puede utilizar el javax.inject.Qualifer mecanismo. En corto definir una anotación (@Test) y anotar la anotación con @Qualifier. A continuación, utilice @Autowired @Test en el punto de inyección.
    • establecer explícitamente los calificadores en el objetivo de frijol. Los médicos dicen que sólo muestran la versión de xml <qualifier />, pero trate de añadir @Qualifier("test1") en la definición de servicio

    Aquí está la documentación al respecto

    Ok, he cambiado el código para algo así. @Resource(name=»test1″) público TestImpl1 implementa Prueba {} @Resource(name=»test2″) público TestImpl2 implementa Prueba {} Y en el de destino bean //pero eso es irrelevante para este problema público SomeClass { @Autowired @Qualifier(«prueba1») de la Prueba de prueba1; me estoy haciendo una excepción (en implementación) No coincidencia de bean de tipo [pl.Prueba] encontró que para la dependencia: espera al menos 1 bean, el cual califica como autowire candidato para esta dependencia. La dependencia de anotaciones: {@org.springframework.los frijoles.de la fábrica.la anotación.Autowired(required=true)}
    por «injecetion punto», quiero decir el punto donde se inyecta, no la definición del servicio.
    Hice lo que usted escribió a la derecha ahora. Parece que el problema está en la misma declaración de las clases de servicios. Ahora tengo código: @Servicio(valor=»test1″) público TestImpl1 implementa Prueba {} @de Servicio(valor=»test2″) público TestImpl2 implementa Prueba {} Sin punto de inyección. Tengo el mismo excepción: se define: se esperaba de juego única bean pero se encontró 2: [test1, test2]
    la tienes en algún otro lugar, o usted no ha limpiado su entorno
    Yo estaba limpiado mi… Es un trabajo. Gracias por los consejos.

    OriginalEl autor Bozho

Dejar respuesta

Please enter your comment!
Please enter your name here