Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2010, 08:46
HalleyR
 
Fecha de Ingreso: marzo-2008
Mensajes: 37
Antigüedad: 17 años
Puntos: 0
Problemas Spring Anotaciones Error creating bean with name 'contactService': Injectio

ola compañeros tengo un problema con spring anotaciones al parecer no esta realizando la inyeccion de dependencia, les dejo el error y los codigos a vesr si alguien me ayuda

Este es el ERROR

Error creating bean with name 'contactService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationExce ption: Could not autowire method: public void

aqui las clases

Código:

type Informe de Excepción


mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: Servlet.init() para servlet extjs-crud-grid-spring-hibernate lanzó excepción
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Thread.java:619)
 

causa raíz

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contactService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.orsisperu.service.ContactService.setContactDao(com.orsisperu.dao.ContactDAO); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.orsisperu.dao.ContactDAO] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
	org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1064)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
	org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
	org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442)
	org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
	org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
	org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
	org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127)
	javax.servlet.GenericServlet.init(GenericServlet.java:212)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Thread.java:619)



La interfaz

Código:
package com.orsisperu.dao;

import java.util.List;

import com.orsisperu.model.Contact;

public interface IContactDAO {
	
	List<Contact>  getContacts();
	
	void deleteContact(String id);
	
	Contact saveContact(Contact contacto);

}

el dao


Código:
package com.orsisperu.dao;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;


import com.orsisperu.model.Contact;

@Repository
public class ContactDAO implements IContactDAO {
	
	private HibernateTemplate hibernateTemplate;
	
	@Autowired
	public void setSessionFactory(SessionFactory  sessionFactory){
		hibernateTemplate=new HibernateTemplate(sessionFactory);
	}
    
	@SuppressWarnings("unchecked") //para evitar error compilacion con java.io.serializable
	@Override
	@Transactional(readOnly=true)
	public List<Contact> getContacts() {
		// TODO Auto-generated method stub
		return hibernateTemplate.find("from Contact");
	}

	@Override
	@Transactional
	public void deleteContact(String id) {
		// TODO Auto-generated method stub
		Object record=hibernateTemplate.load(Contact.class, id);
		hibernateTemplate.delete(record);
	}
     
	//retorna contacto que fue insertado en la bd
	@Override
	@Transactional
	public Contact saveContact(Contact contacto) {
		// TODO Auto-generated method stub
		hibernateTemplate.saveOrUpdate(contacto);
		
		return contacto;
		
	}

}

mi capa servicio


Código:
package com.orsisperu.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.orsisperu.dao.ContactDAO;
import com.orsisperu.model.Contact;

@Service
public class ContactService {
	@Autowired
	private ContactDAO contactDao;
	
	
	public void setContactDao(ContactDAO contactDao) {
		this.contactDao = contactDao;
	}
	
	public List<Contact> getContactList(){
		return contactDao.getContacts();
	}
	
	public  Contact createContact(Contact contacto){
			return contactDao.saveContact(contacto);
	}
	
	public Contact updateContact(Contact contacto){
		return contactDao.saveContact(contacto);
	}
	
	public void deleteContact(String id){
		 contactDao.deleteContact(id);
	}

}


y mi capa controllador

Aqui parece que sta el erro al tratar de inyectar el bean servicio


Código:
package com.orsisperu.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import sun.font.CreatedFontTracker;

import com.orsisperu.service.ContactService;

@Controller
public class ContactController {

	private ContactService contactService;

	@Autowired
	public void setContactService(ContactService contactService) {
		this.contactService = contactService;
	}
	
	@RequestMapping(value="/contact/view.action")
	public String view(ModelMap model){
		
		model.addAttribute("listaContact",contactService.getContactList());
		
		return "contact/listaContact";
	}
	
	
	
}

este es mi archivo spring configuracion

Código:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<!-- Scans the classpath of this application for @Components to deploy as beans -->
	<context:component-scan base-package="com.orsisperu" />
	
	<!-- Configures the @Controller programming model -->
	<mvc:annotation-driven />

	<!-- misc -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
	    <property name="suffix" value=".jsp"/>
	</bean>
	
	<!-- Configures Hibernate - Database Config -->
	<import resource="db-config.xml" />
      
</beans>

Ojala me puedan dar la mano no se a que se deba

Saludos