2011-07-27 14 views
5
Jul 27, 2011 10:56:15 AM org.springframework.web.servlet.FrameworkServlet 
initServletBean 

SEVERE: Context initialization failed 
org.springframework.beans.factory.BeanDefinitionStoreException: 

Unexpected exception parsing XML document from ServletContext resource 
[/WEB-INF/dispatcher-servlet.xml]; 

nested exception is java.lang.IllegalStateException: 

Annotation-specified bean name 'fooController' for 
bean class [com.fooapp.ctrl.FooController] 
conflicts with existing, non-compatible bean definition of same name 
and class [com.fooapp.ctrl.admin.FooController] 

En ambos paquetes que define el controlador utilizando el @Controller anotación:¿Por qué no puedo tener el mismo nombre de Controlador en un paquete diferente con configuración basada en anotaciones?

@Controller 
public class FooController { 
... 

¿Tengo que utilizar un nombre diferente para el controlador en el paquete admin?

Respuesta

15

El nombre de bean predeterminado para @Component o derivado (@Controller, @Service, etc.) es el nombre de clase no calificado con un primer carácter inferior. Con el fin de tener esos dos controladores juntos, acaba de establecer un nombre de frijol diferente (por lo menos uno de ellos):

@Controller("secondFooController") 

Comprobar this section de la documentación.

Cuestiones relacionadas