Erro "Caused by: java.lang.NullPointerException" com spring

3 respostas
A

Boa Tarde alguém pode me ajudar com um erro que não encontro a solução nem a pau???

.xml

...
<bean id="planoFinanceiroDao" class="com.wave.erp.cadastro.dao.financeiro.PlanoFinanceiroDAO"/>
	<bean id="planoFinanceiroFinder" class="com.wave.erp.cadastro.dao.financeiro.PlanoFinanceiroFinder"/>
	<bean id="planoFinanceiroBO" class="com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroBO">
		<property name="planoFinanceiroFinder" ref="planoFinanceiroFinder"/>
		<property name="planoFinanceiroDao" ref="planoFinanceiroDao"/>
	</bean>
	<bean id="planoFinanceiroMEBO" class="com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO">
		<property name="grupoEmpresasFinder" ref="grupoEmpresasFinder"/>
		<property name="planoFinanceiroFinder" ref="planoFinanceiroFinder"/>
		<property name="planoFinanceiroBO" ref="planoFinanceiroBO"/>
	</bean>
...

PlanoFinanceiroBO .java

...
public class PlanoFinanceiroBO implements IEstruturaPlanoFinanceiroBO {

	private IPlanoFinanceiroFinder planoFinanceiroFinder;
	private IPlanoFinanceiroDAO planoFinanceiroDao;
....

PlanoFinanceiroMEBO.java

...
public class PlanoFinanceiroMEBO implements IPlanoFinanceiroMEBO {

	private IGrupoEmpresasFinder grupoEmpresasFinder;
	private IPlanoFinanceiroFinder planoFinanceiroFinder;
	private IEstruturaPlanoFinanceiroBO planoFinanceiroBO;
....

Ta difícil de + estou fazendo tudo certo mais o erro persiste…

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.dpcomp.webevolution.framework.view.WaveServlet.executeWebClass(WaveServlet.java:41)
	at com.wave.erp.viewria.servlet.ERPProcessRequest.executeWebClassSpring(ERPProcessRequest.java:50)
	at com.wave.erp.viewria.servlet.ERPAbstractServlet.executeWebClassSpring(ERPAbstractServlet.java:17)
	at com.wave.erp.viewria.servlet.ERPServlet.service(ERPServlet.java:74)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.wave.erp.viewria.servlet.SecurityFilter.doFilter(SecurityFilter.java:95)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.traceNextValve(HttpRequestOperationCollectionValve.java:112)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:94)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO.getCodigoEstrutura(PlanoFinanceiroMEBO.java:167)
	at com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO.atualizar(PlanoFinanceiroMEBO.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy86.atualizar(Unknown Source)
	at com.wave.erp.cadastro.controller.financeiro.ManterEstruturaPlanoFinanceiro.alterar(ManterEstruturaPlanoFinanceiro.java:81)
	... 29 more

Obs: Contém Getter e Setter em ambas classes

Abraços.

3 Respostas

L
at com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO.getCodigoEstrutura(PlanoFinanceiroMEBO.java:167)

Esse objeto na 167 ta nulo, que objeto tem ai? de onde ele vem? quem cria/popula ele?

A

Para ser mais exato:

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.dpcomp.webevolution.framework.view.WaveServlet.executeWebClass(WaveServlet.java:41)
	at com.wave.erp.viewria.servlet.ERPProcessRequest.executeWebClassSpring(ERPProcessRequest.java:50)
	at com.wave.erp.viewria.servlet.ERPAbstractServlet.executeWebClassSpring(ERPAbstractServlet.java:17)
	at com.wave.erp.viewria.servlet.ERPServlet.service(ERPServlet.java:74)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.wave.erp.viewria.servlet.SecurityFilter.doFilter(SecurityFilter.java:95)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.traceNextValve(HttpRequestOperationCollectionValve.java:112)
	at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:94)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO.atualizar(PlanoFinanceiroMEBO.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy272.atualizar(Unknown Source)
	at com.wave.erp.cadastro.controller.financeiro.ManterEstruturaPlanoFinanceiro.alterar(ManterEstruturaPlanoFinanceiro.java:81)
	... 29 more

Na linha:

at com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO.atualizar(PlanoFinanceiroMEBO.java:63)

eu tenho:

String codigoEstrutura = planoFinanceiroFinder.buscarEstruturaPlanoFinanceiroById(orm.getId()).getCodigo();

O spring não está pegando a dependência da finder… Não consigo entender pq amigo =/

Abraços.

A

Bom dia,

Mudei a estrategia aqui…

Estou fazendo assim agora:

...

public class PlanoFinanceiroMEBO extends PlanoFinanceiroBO implements IPlanoFinanceiroMEBO {

	private IGrupoEmpresasFinder grupoEmpresasFinder;

...

E no .xml:

...
<bean id="planoFinanceiroDao" class="com.wave.erp.cadastro.dao.financeiro.PlanoFinanceiroDAO"/>
	<bean id="planoFinanceiroFinder" class="com.wave.erp.cadastro.dao.financeiro.PlanoFinanceiroFinder"/>
	<bean id="planoFinanceiroBO" class="com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroBO">
		<property name="planoFinanceiroFinder" ref="planoFinanceiroFinder"/>
		<property name="planoFinanceiroDao" ref="planoFinanceiroDao"/>
	</bean>
	<bean id="planoFinanceiroMEBO" class="com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO" singleton="false" depends-on="planoFinanceiroBO">
		<property name="grupoEmpresasFinder" ref="grupoEmpresasFinder"/>
		<property name="planoFinanceiroFinder" ref="planoFinanceiroFinder"/>
		<property name="planoFinanceiroDao" ref="planoFinanceiroDao"/>
	</bean>
...

Porém aparece a exception:

.....


Grave: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'planoFinanceiroMEBO' defined in class path resource [META-INF/spring/erp-cadastro-context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'planoFinanceiroBO' of bean class [com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO]: Bean property 'planoFinanceiroBO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:897)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:873)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'planoFinanceiroBO' of bean class [com.wave.erp.cadastro.bo.financeiro.PlanoFinanceiroMEBO]: Bean property 'planoFinanceiroBO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:801)
	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651)
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1276)
	... 30 more



....

Alguém poderia me ajudar??? Existe outra solução???

Abraços.

Criado 14 de janeiro de 2013
Ultima resposta 15 de jan. de 2013
Respostas 3
Participantes 2