Erro ao fazer DI no Spring

2 respostas
johmjohm

Olá amigos,

Estou tendo um pequeno problema na hora de iniciar minha aplicação. O erro é o seguinte:

[color=red]

Exception in thread main org.springframework.beans.factory.BeanCreationException: Error creating bean with name teste2 defined in class path resource [escola/logic/spring-logic.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:

PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property logic threw exception; nested exception is java.lang.NullPointerException

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)

at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)

at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93)

at escola.spring.ConfigurationSpring.setupFactory(ConfigurationSpring.java:25)

at TesteHibernate.main(TesteHibernate.java:18)

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:

PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property logic threw exception; nested exception is java.lang.NullPointerException

at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102)

at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1393)

 14 more

[/color]

Espero que me ajudem.

Desde já agradeço.

2 Respostas

WRYEL

poste o conteúdo do xml [escola/logic/spring-logic.xml] e código da classe do bean com o nome teste2. :slight_smile:

johmjohm

Desculpe, eu esqueci de postar os códigos. segue abaixo as configurações:

configurações spring

<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans 
	   					   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	   					   http://www.springframework.org/schema/context 
	   					   http://www.springframework.org/schema/context/spring-context-2.5.xsd">

	<context:component-scan base-package="escola.logic.impl"/>
	<context:annotation-config/>

	<bean id="defaultLogic" class="escola.logic.impl.DefaultImpl"/>
	
	<bean id="teste2" class="escola.test.TesteSave">
		<property name="logic" ref="teste"/>
	</bean>
	
	<bean id="teste" parent="defaultLogic">
		<property name="dao" ref="testeDAO"/>
	</bean>

        <bean id="defaultDAO" class="escola.dao.impl.DefaultDAOImpl"/>
	
	<bean id="testeDAO" parent="defaultDAO">
		<property name="entityClass" value="escola.modelo.Teste"/>
	</bean>

</beans>

classe main de teste:

public class TesteHibernate {

	public static void main(String[] args) {
		ConfigurationSpring.setupFactory(); // aqui é onde eu carrego as configurações do spring
		new TesteSave().test();
	}

}


public class TesteSave {
	
	private Logic<Teste> logic;
	
	public void setLogic(Logic<Teste> logic) {
		this.logic = logic;
	}
	
	public void test() {
		System.out.println(logic.getById(1));
	}
}

Muito obrigado pela atenção

Criado 15 de junho de 2012
Ultima resposta 15 de jun. de 2012
Respostas 2
Participantes 2