在 WebLogic Server 9.2 上部署 Spring 时,抛出 NotWritablePropertyException 异常。根据 stack 信息显示发现是无法装配 某些 bean 相关的 property。但是配置信息都是依据 Spring 的的规范进行配置的,不可能产生错误的。
后来在网上搜索一下相关的资料发现好多同学都碰到这种情况,而且产生异常的原因比较古怪。大部分都是由于 Class 的 property 名称引起的,也就是变量名称的第二个字母不能为大写。例如:
当然 Spring 配置文件就会如下所示:
此时如果启动 weblogic 定然会报错,后来修改为如下的方式后即可正常启动:
目前还不知道具体是什么导致了这个问题的发生。
后来在网上搜索一下相关的资料发现好多同学都碰到这种情况,而且产生异常的原因比较古怪。大部分都是由于 Class 的 property 名称引起的,也就是变量名称的第二个字母不能为大写。例如:
.....
private ERgotAdapter eRgotAdapter;
public void setERgotAdapter(ERgotAdapter eRgotAdapter) {
this.eRgotAdater = eRgotAdapter
}
......
private ERgotAdapter eRgotAdapter;
public void setERgotAdapter(ERgotAdapter eRgotAdapter) {
this.eRgotAdater = eRgotAdapter
}
......
当然 Spring 配置文件就会如下所示:
<
bean
id....
<property name ="eRgotAdapter" >
< ref bean ="eRgotAdapter" />
</ property >
</ bean >
<property name ="eRgotAdapter" >
< ref bean ="eRgotAdapter" />
</ property >
</ bean >
此时如果启动 weblogic 定然会报错,后来修改为如下的方式后即可正常启动:
.....
private ERgotAdapter ergotAdapter;
public void setErgotAdapter(ERgotAdapter ergotAdapter) ... {
this.ergotAdater = ergotAdapter
}
......
private ERgotAdapter ergotAdapter;
public void setErgotAdapter(ERgotAdapter ergotAdapter) ... {
this.ergotAdater = ergotAdapter
}
......
<
bean
id....
<property name ="ergotAdapter" >
< ref bean ="eRgotAdapter" />
</ property >
</ bean >
<property name ="ergotAdapter" >
< ref bean ="eRgotAdapter" />
</ property >
</ bean >
目前还不知道具体是什么导致了这个问题的发生。