Jeesite测试service时报错java.lang.NullPointerException

编写的service需要测试下,编写了main来调用,之前都是顺利的,最后测试查找调用数据库的时候出现了报错java.lang.NullPointerException的问题

		Lawinfo lawinfo = new Lawinfo();
		lawinfo.setgGuid("12345676-ffff-1111-1111-1111111111111");
		List<Lawinfo > lawinfolist = lawinfoService.findList(lawinfo); //报错在此处

断点调试后发现是lawinfoService.findList中dao为null

service一般是由Controller调用的,且调用的时候不用手动创建对象

		@Autowired
		private LawinfoService lawinfoService;//自动注入
		
		private LawinfoService lawinfoService = new LawinfoService( ) ;//手动创建

LawinfoService是继承CrudService的,需要自动注入才能正常。
说白了就是一堆很烦的工作其实是sping帮我们做的,不这么用就得自己写。

@Autowired很多地方都会使用,具体含义规则可以自行百度更官方得定义,但是这个注解需要spring扫描到后注入才能正常工作,如果允许tomcat项目跑起来,在Controller中调用就是正常得,但是如果在main中调用,虽然注解了但是没有被spring注入内容,所以其中得dao是null,引起了报错java.lang.NullPointerException。

解决办法如下:

		ApplicationContext  springUtilContext = new ClassPathXmlApplicationContext("classpath:spring-Context.xml");
		ParseJSON parseJSON=(ParseJSON) springUtilContext.getBean(ParseJSON.class);
		JSONinfo json = new JSONinfo();
		json = parseJSON.parseJSONWithJSONObject(jsontest1);

第一句话我猜是启动了Spring扫描,第二句对ParseJSON类进行了注入
ParseJSON就是我要测试得类,里面会用到LawinfoService,添加后就能正常从main中运行了。
记得ParseJSON类前要加@Service注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值