请老师帮忙看看这个错误信息

请老师帮忙看看这个错误信息

核心控制器测试是可以的,调用业务层报错

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.jjan.sm.global.DispatcherServlet.service(DispatcherServlet.java:45)
	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.jjan.sm.global.EncodingFilter.doFilter(EncodingFilter.java:21)
	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:493)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
	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:798)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
	at com.jjan.sm.controller.TestController.index(TestController.java:17)
	... 30 more


正在回答

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

2回答

同学你好,报错提示是空指针异常了,发送异常的是TestController中的第17行

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

空指针异常是有值为null的对象去调用方法或属性了。

同学看一下第17行具体的代码是什么?

同学是在测试包中编写了测试的代码吗?如果老师没有猜错,应该是同学注入的service层的对象是null,如果同学想要测试类,需要添加一下spring的测试包儿。并在上边引用一下配置文件。例如:

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

可以参考spring-aop 中老师的写法。

如果老师猜测有误,,请同学告知具体的代码。老师帮你看一下,或者同学往回推测一下,看看为什么是null。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 用户1080741 提问者 #1
    老师你好,我先测试了一个删除功能, 控制器: @Controller("TestController") public class TestController { @Autowired private CourseService courseService; public void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Integer id = Integer.parseInt(request.getParameter("id")); courseService.remove(id); 业务层实现: @Service("courseService") public class CourseServiceImpl implements CourseService { @Autowired private CourseDao courseDao; public void remove(Integer id) { courseDao.delete(id); } dao层: @Repository("courseDao") public interface CourseDao { void delete(Integer id); } 配置文件: <mapper namespace="com.jjan.sm.dao.CourseDao"> <resultMap id="resultMap" type="Course"> <id property="id" column="id" javaType="Integer"/> <result property="name" column="name" javaType="String"/> <result property="score" column="score" javaType="Integer"/> </resultMap> <delete id="delete" parameterType="Integer"> delete from selection_course.course where id=#{id} </delete> </mapper> 浏览器输入http://localhost:8080/sm/index.do?id=1001 报错
    2019-12-30 11:29:44
  • 用户1080741 提问者 #2
    invalib bound statment (not found)是配置文件的问题吗?
    2019-12-30 11:53:35
提问者 用户1080741 2019-12-30 12:04:57

问题解决了,在resources创建目录文件用.了,应该是/的

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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