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

java.lang.NullPointerException


2013-7-8 19:48:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
at java.text.DateFormat.parse(DateFormat.java:335)
at com.gem.daoImpl.OrderInfoDaoImpl.saveOrderInfo(OrderInfoDaoImpl.java:44)
at com.shop.struts.action.OrderInfoListAction.save(OrderInfoListAction.java:62)
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 org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Servlet 异常 --------------------编程问答-------------------- 日期转换错误
打印一下值,看是不是为空或格式差异太大
--------------------编程问答-------------------- 1 首先的问问题有问题,只发出异常stack,都没有代码,别人怎么帮你分析。
2 就算帮你看,SimpleDateFormat的1235行 java版本1.6 27 根本就没有该行。你也说一下jdk的帮本。

NullPointerException 是最好分析的一个问题之一,找到对应的行数,发现那个对象为null,然后调查该对象问什么是null, 要学会调查方法。不是有问题直接就发帖,这种问题要学会自己调查,才能提高。 --------------------编程问答-------------------- 你的simpleDateFormat没有实例化吧,仔细检查检查 --------------------编程问答-------------------- 可是其他类中也有相同的代码啊!为什么运行其他的java类就不报错呢?? --------------------编程问答-------------------- 设断点debug一下就知道啦。
这个异常应该是用了一个空的对象(未实例化的对象)。 --------------------编程问答--------------------
引用 5 楼 melodyfair1971 的回复:
设断点debug一下就知道啦。
这个异常应该是用了一个空的对象(未实例化的对象)。


debug 很容易看到null了。 --------------------编程问答--------------------
引用 6 楼 zjw10wei321 的回复:
Quote: 引用 5 楼 melodyfair1971 的回复:

设断点debug一下就知道啦。
这个异常应该是用了一个空的对象(未实例化的对象)。


debug 很容易看到null了。


+1 --------------------编程问答-------------------- 应该是你parse日期的时候传递的那个参数没有值,你把你传进去需要parse的那个String变量打印出来,看看是不是空的。 --------------------编程问答-------------------- 这个要DEBUG一下,,没有代码 别人帮你看不了啊,,,,debug就知道哪个对象是Null了 --------------------编程问答-------------------- --------------------编程问答-------------------- 对呀  这种问题一般debug出空对象就好嘞~ --------------------编程问答-------------------- debug 看下吧 。 --------------------编程问答--------------------
应该是  com.gem.daoImpl.OrderInfoDaoImpl.saveOrderInfo(OrderInfoDaoImpl.java:44) 这句。。
OrderInfoDaoImpl这个类的 44行。。。看看  日期格式转换错误。。 --------------------编程问答-------------------- try catch一下 一步步的debug 就查找到哪个变量是空值了  --------------------编程问答-------------------- 建议你用debug模式,从dao层往前一步一步的查找,你这给出的信息也看不出哪里出错了。 --------------------编程问答-------------------- 你使用了,没有实例化的变量,因为你 没有提供代码,所以我也不知道具体哪个变量没有实例化。 --------------------编程问答-------------------- 你把实例化SimpleDateFormat对象的那行代码贴出来看看 --------------------编程问答-------------------- at com.gem.daoImpl.OrderInfoDaoImpl.saveOrderInfo(OrderInfoDaoImpl.java:44)
这句话是关键。
daoImpl.OrderInfoDaoImpl()这个方法返回值是null. --------------------编程问答-------------------- 你调试下看看到那为空了,是因为没有实例化还是调用的日期空了 --------------------编程问答-------------------- 一般空指针都是没有实例化的错误 仔细找找 按个测试打印一下看看 就知道了 --------------------编程问答-------------------- 上面几楼说的都蛮清楚的,应该是OrderInfoDaoImpl类的44行,在调用DateFormat中的parse方法时,传入的字符串参数为null,导致了这个异常的发生。
最好在涉及到日期转换的时候,都加些异常性的值判断比较好。个人觉得-  - --------------------编程问答-------------------- 除
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,