删除图片出现空指针异常

删除图片出现空指针异常

Integer pid = Integer.parseInt(request.getParameter("pid"));
		ProductService productService = new ProductServiceImpl();
		productService.delete(pid);
		//删除图片
		Product product = productService.findOne(pid);
		String path = product.getPath();
		if(path != null && "".equals(path)) {
			String realPath = this.getServletContext().getRealPath(path);
			File file = new File(realPath);
			if(file.exists()) {
				file.delete();
				System.out.println("删除成功");
			}
		}

-----------------------------------------------------------------------------------------

二月 13, 2020 7:00:18 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: 在路径为[/shop]的上下文中,servlet[com.imooc.web.action.ProductServlet]的Servlet.service()引发异常
java.lang.NullPointerException
	at com.imooc.web.action.ProductServlet.delete(ProductServlet.java:57)
	at com.imooc.web.action.ProductServlet.doGet(ProductServlet.java:45)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.imooc.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:37)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好

空指针异常是指有值为null的对象去调用方法了,因为同学没有告知报错提示的行数具体是哪行代码,老师这里无法准确的告知是哪个地方为null

请同学根据报错行数

http://img1.sycdn.imooc.com/climg/5e45fbf409f1a44808380247.jpg

定位一下具体这行的哪个值是null,并追根溯源,查看一下它为什么是null,与

http://img1.sycdn.imooc.com//climg/5e45fc9409a363f206300066.jpghttps://class.imooc.com/course/qadetail/192054  问答中的问题无关。

以后遇到类似的空指针异常,同学可以用这个方法先检查一下哦。

如果我的回答解决了你的问题,请采纳,祝学习愉快.

  • 敏捷丶 提问者 #1
    报错的是这句Product product = productService.findOne(pid); 也就是说pid是空值但上面用delete(pid)是没有问题的啊,反正是获取不了路径
    2020-02-14 14:04:27
  • 好帮手慕阿莹 回复 提问者 敏捷丶 #2
    同学你好,如果是这行报错,建议同学输出一下productService是否为null。这行代码中只有productService去调用方法了。pid 是参数而已哦。请同学再检查一下productService。祝学习愉快
    2020-02-14 17:32:26
  • 敏捷丶 提问者 回复 好帮手慕阿莹 #3
    productService输出了不为空,完整代码我贴在这个问题里了,请老师看一下 https://class.imooc.com/course/qadetail/192357
    2020-02-14 18:53:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师