当前位置:编程学习 > JAVA >>

spring注入bean不成功,求普及知识

先粘上错误信息:



2013-06-08 01:21:28 ERROR [http-8080-3] (ExceptionMappingInterceptor.java:229) - 
java.lang.NullPointerException
at com.app.pw.guangdong.electrify.action.ElectrifyAction.getTaskList(ElectrifyAction.java:110)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:165)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:169)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:165)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.rich.framework.auth.interceptor.AuthenticationInterceptor.intercept(AuthenticationInterceptor.java:101)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.emmis.interceptor.GisLoginInterceptor.intercept(GisLoginInterceptor.java:65)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.rich.component.filter.MultiTabReturnBackFilter.doFilter(MultiTabReturnBackFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.rich.framework.util.EncodingFilter.doFilter(EncodingFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.rich.framework.util.CustomFilter.doFilter(CustomFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1303)
at java.lang.Thread.run(Thread.java:619)








先说下自己测试之后的结果,我如果不调用at com.app.pw.guangdong.electrify.action.ElectrifyAction.getTaskList这个方法就不会出错,页面能正常跳转。 debug调试之后得到的答案是注入业务层失败,数据显示为空····



求大神指点 Spring --------------------编程问答-------------------- 先声明,本人不是高手,也是菜鸟一枚,错误提示中“java.lang.NullPointerException”,说明找不到相应的类,你自己检查看看,是否加载了相应的类~ --------------------编程问答-------------------- 起码ElectrifyAction贴出来啊,不是找不到类,是空指针。 --------------------编程问答-------------------- ElectrifyAction这个是查库的类? --------------------编程问答-------------------- 代码没有 看不出来 --------------------编程问答-------------------- 代码贴全一点,不然很难分析 --------------------编程问答-------------------- 菜鸟的话我推测是xml写错了 --------------------编程问答-------------------- at com.app.pw.guangdong.electrify.action.ElectrifyAction.getTaskList你调用这个方法的时候传入的对象会不会有问题呢,报的是空指针啊,taskList属性有没有得到值?debug设个断点看看 --------------------编程问答-------------------- spring 配置文件里面没有注入bean 吧 --------------------编程问答--------------------
引用 1 楼 windy1986725 的回复:
先声明,本人不是高手,也是菜鸟一枚,错误提示中“java.lang.NullPointerException”,说明找不到相应的类,你自己检查看看,是否加载了相应的类~

空指针,不要瞎说。。 --------------------编程问答-------------------- 姐啊,请把代码帖出来啊! --------------------编程问答-------------------- 如果确定是注入问题,启动就有错的,那个日志才是关键。
LZ确认Spring配置文件是否有相应的bean配置,然后确认下启动日志是否有错吧~ --------------------编程问答--------------------
引用 1 楼 windy1986725 的回复:
先声明,本人不是高手,也是菜鸟一枚,错误提示中“java.lang.NullPointerException”,说明找不到相应的类,你自己检查看看,是否加载了相应的类~
 找不到类应该是classnotfound这个异常吧 --------------------编程问答-------------------- 木有注入。。 --------------------编程问答-------------------- 把你的spring的配置文件贴上来看看啦
还有你说的那个业务层代码  贴全点才好分析啊 --------------------编程问答-------------------- 我告诉你,“getTaskList”方法不要用get或者set什么的开头,重新起个名字,因为spring的依赖注入跟set、get有关。 --------------------编程问答-------------------- 不给配置文件怎么看啊。。。。SSH 中  空指针  基本都是注入失败。。。对象为空,所以空指针调用了。。 --------------------编程问答-------------------- 谢谢楼上几位大侠的指教,是我理解错了。其实我对Spring的IOC机制也有些迷糊~ --------------------编程问答-------------------- 在你注入bean的时候,里面的值为空了。。。 --------------------编程问答-------------------- 楼主,问题解决了么,我最近也出了一个这样的问题,是不是你的Spring里没有配置Action bean呢, --------------------编程问答--------------------
引用 19 楼 windy1986725 的回复:
楼主,问题解决了么,我最近也出了一个这样的问题,是不是你的Spring里没有配置Action bean呢,
很可能 --------------------编程问答-------------------- 就是一个异常,看不出来是哪里问题。 --------------------编程问答-------------------- 空指针异常,是你的页面数据传输到action 的时候 没传过来值 --------------------编程问答-------------------- at com.app.pw.guangdong.electrify.action.ElectrifyAction.getTaskList(ElectrifyAction.java:110)
ElectrifyAction这个类第110行对空的对象进行了操作,报空指针异常
--------------------编程问答--------------------
引用 15 楼 nongzhenqin 的回复:
我告诉你,“getTaskList”方法不要用get或者set什么的开头,重新起个名字,因为spring的依赖注入跟set、get有关。
 用get或set开头的话 如果你前台用jquery 访问其他方法 它不回调回去 而且去执行set /get 开头的方法 。这样很容易爆空指针的 --------------------编程问答-------------------- ElectrifyAction  这个类spring 没有生成实例吧
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,