更多课程 选择中心

软件测试培训
达内IT学院

400-111-8989

软件测试中遇到bug怎么办?请善待,它会让你更强大!


在速运快递项目前端页面用户注册的时候,点击注册之后总是报空指针异常,我当时一直想的是我前端页面封装model失败了吗?但是根本没有想到是CustomerService是null.

针对这个问题,我的解决办法如下:

1、前端debug,看看请求参数是否正确

F12,点击注册之后,看到浏览器响应码为200,由于是post请求,请求参数体正确。但是后台就报空指针。很明显,是后台程序的问题。

2、后端debug

在开启debug模式之后,我在CustomerAction的singUpCustomerService.save(model)方法前打了断点,点击注册按钮之后,进入debug模式,在点击F5进入 CustomerService.save(model)方法中,走完这一步,我在debug界面右上看到了所有参数的值,这时候才发现原来不是model为null,

而是CustomerService为null。


CustomerService

Customer

为什么CustomerService为null呢?思前想后不得其解,因为我是在crm项目写的CustomerService和CustomerServiceImpl,最后通过webService发布的。我当时以为是我wsimport下载完webService代码之后没有更新项目的原因。在更新maven,install之后,运行之后还是会出现空指针异常。

3、最后思路只能是spring配置文件了,经过查找,问题就在这里!

以下是我最初配置的spring配置文件:因为bos_fore项目只有web层,因此就大意只配置了webService服务代理对象,而忽略了spring注解的扫描包的配置。

<jaxws:client id="customerClient"

address="http://localhost:8888/bos_crm/service/customer"

serviceClass="cn.baidu.cxf.service.CustomerService">

</jaxws:client>

正确配置应该加上:

<!--配置注解的扫描包 -->

<context:component-scan base-package="cn.baidu.customer.action"></context:component-scan>

问题解决:因为我们把Action的创建交给了spring接管,所以配置spring扫描包这件事一定不能省略。不然配置的Autowired就不能成功,即不能给CustomerService注入。

之所以能进入Action方法中是因为web.xml中配置的拦截器,只要配置了拦截器,只要访问路径成功就能进入action内部。而注入成功与否是靠注解或者set方法。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:一个Popstate的Bug引起的雪崩
下一篇:web测试中我们一定需要注意的小地方是这些!

软件测试工程师有哪些岗位?

软件测试工程师要求?

软件测试项目去哪里找?

软件测试这个岗位今年如何?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

陕西省

湖南省

贵州省

云南省

广西省

海南省