java.lang.reflect.InvocationTargetException

啊 又遇到错了

我的直觉告诉我这是dwr配置文件中的问题,但是刚刚配置过参数但是报错了,现在又说找不到参数啊 啊啊啊啊啊啊

又要去配置参数

刚刚发现 dwr中的这个参数,我本来以为要全部写,但是发现这个标签是引入service方法的,我之前一直认为引入的是需要的对象呢,查找后发现我需要的那个service没有接口,但是DefaultBusinessListServiceImpl类加上了@Service("defaultBusinessListService")注解

这才恍然大悟,原来这个是这个property标签中写的是service的名字呀!!!

<!-- 该DWR引入的service方法 -->
<property name="defaultBusinessListService" ref="defaultBusinessListService" />
<!-- <property name="authenticationHelper" ref="authenticationHelper" /> -->

经过修改后

好嘛,有报错了

严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dwrSpecificTextOutboxService' defined in file [F:\smartdotProject\Project\GuoHang\GitProject\iam-project-airchina\build\webapp\WEB-INF\dwr\product\saa\dwr-specificTextOutbox.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'defaultBusinessListService' of bean class [com.hd.rcugrc.saa.specificTextOutbox.dwr.impl.DwrSpecificTextOutboxServiceImpl]: Bean property 'defaultBusinessListService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

这个错误是说没有get/set方法,但是我明明写了get/set方法

经查看后发现  service的名字为defaultBusinessListService,但是我的属性的名字是defaultBusinessListServiceImpl会不会是这两个对不上呢?

也就是把属性的名字和@Service('')中的内容对应起来

因为之前都是用接口来创建的属性,但是当前用的类是平台自带的,查找后发现这个类没有自己对应的接口,所以就出现了这种情况。

之前都是用接口名来生成的属性,这样生成的一般属性名和@Service('')中的也保持一致了,所以之前就没有注意到这个现象。

修改修改试一下

//修改前
@Resource
	DefaultBusinessListServiceImpl  defaultBusinessListServiceImpl;
	public DefaultBusinessListServiceImpl getDefaultBusinessListServiceImpl() {
		return defaultBusinessListServiceImpl;
	}
	public void setDefaultBusinessListServiceImpl(DefaultBusinessListServiceImpl defaultBusinessListServiceImpl) {
		this.defaultBusinessListService = defaultBusinessListServiceImpl;
	}
//修改后
@Resource
	DefaultBusinessListServiceImpl  defaultBusinessListService;
	public DefaultBusinessListServiceImpl getDefaultBusinessListServiceImpl() {
		return defaultBusinessListService;
	}
	public void setDefaultBusinessListServiceImpl(DefaultBusinessListServiceImpl defaultBusinessListService) {
		this.defaultBusinessListService = defaultBusinessListService;
	}

每次修改都要重新build,好烦啊

哦不!!!!!,依旧报错,一模一样的错误啊啊啊啊啊

算了,不写了,待会吃饭了,下午在写

------------------------------------------------------吃饭分界线------------------------------------------------------

不不不 , 我刚刚发现我改了属性名,但是没改get/set的方法名啊!!怪不得一直不合适,明明写了get/set方法却一直找不到,原来是因为名字不对,吃完饭回来再说!

------------------------------------------------这次是真的要吃饭的分界线---------------------------------------------

哈哈哈哈 13:30睡醒了  13:40测试了一下 , 果然是get/set的名称不对!

总结一下

property中的name和ref要和类中的属性名一致还有@service("")中的一致,get/set的方法名也应该保持对应。

所以说写代码一定要规范啊,不能似是而非!

吸取教训,继续努力,不错不错!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值