我们在WebLogic 12c下部署的一个企业应用程序遇到了一个奇怪的问题:
org.springframework.beans.NotReadablePropertyException:无效 bean类[com.petstore.model.FreeFormat]的属性'叙述': Bean属性“叙述”不可读或具有无效的getter method:getter的返回类型是否与参数类型匹配 二传手?
我们有这个实体类:
public class FreeFormat implements Serializable {
private String standardText;
private String openText;
/** default constructor */
public FreeFormat() {
}
public String getOpenText() {
return KEString.nullTOBlank(openText);
}
public void setOpenText(String openText) {
this.openText = openText;
}
public String getStandardText() {
return standardText;
}
public void setStandardText(String standardText) {
this.standardText = standardText;
}
public String getNarrative(){
return getStandardText() + "\n" + getOpenText();
}
当新构建完成并部署到WebLogic服务器12C(使用控制台,删除旧版本并安装新版本,而无需重新启动服务器)时,有时会出现这样的错误:
16:32:43,476 |错误|错误标签| bean类[com.petstore.model.FreeFormat]的无效属性'叙述':Bean 属性'叙述'不可读或具有无效的getter方法: getter的返回类型是否与参数类型匹配 设定装置? | org.springframework.web.servlet.tags.RequestContextAwareTag | 86 | [ACTIVE] ExecuteThread:队列的'19': 'weblogic.kernel.Default(自我调整)' org.springframework.beans.NotReadablePropertyException:无效 bean类[com.petstore.model.FreeFormat]的属性'叙述': Bean属性“叙述”不可读或具有无效的getter method:getter的返回类型是否与参数类型匹配 二传手?在 org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:729) 在 org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:721) 在 org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) 在 org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:226) 在 org.springframework.web.servlet.support.BindStatus。(BindStatus.java:120) 在 org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178) 在 org.springframework.web.servlet.tags.form.ErrorsTag.shouldRender(ErrorsTag.java:140) 在 org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag.writeTagContent(AbstractHtmlElementBodyTag.java:47) 在 org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102) 在 org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79) 在 在weblogic.servlet.jsp.JspBase.service(JspBase.java:35)的jsp_servlet._transactions._freeformat .__ freeformat_edit._jspService(__ freeformat_edit.java:2278) weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:286) 在 weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:260) 在 weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
当服务器重新启动时,问题就消失了,我们运行集群环境,有时它发生在一个实例中但在另一个实例中运行良好,在临时服务器环境中发现,我们重建了相同的环境(相同的JDK,WebLogic等),但是无法在开发环境中重现,我们使用的是Spring Framework 3.1.0.RELEASE版本,并且在将旧版本从Java 6和WebLogic 10迁移到Java 8和WebLogic 12C之后才发现此问题。
有人有什么建议吗?