在執行測試用例時,我們正面臨IBM RAD IDE環境(IBM JDK 1.6作爲運行時JRE)中的一個問題。 Springsource IDE(Sun JDK 1.6作爲運行時JRE)使用相同的代碼。這是JDK還是Spring框架的問題。 簡要歷史記錄碼: 有一個Java bean如下Spring驗證問題
class User {
final Map<Integer,String> securityQuestions = Collections.synchronizedMap(new HashMap<Integer,String>(MAX_SECURITY_QUESTIONS));
final Map<Integer,String> securityAnswers = Collections.synchronizedMap(new HashMap<Integer,String>(MAX_SECURITY_QUESTIONS));
public Map<Integer,String> getSecurityAnswers() {
return securityAnswers;
}
public void setSecurityAnswer(Integer answerNumber, String answerText) {
securityAnswers.put(answerNumber, answerText);
}
}
當我們正在嘗試使用
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "securityAnswers", "seqQans.obj.required","security Question list cannot be empty");
我們得到此異常驗證「securityAnswers」。
引起:org.springframework.beans.NotReadablePropertyException:Bean類[User]的無效屬性'securityAnswers':Bean屬性'securityAnswers'不可讀或具有無效的getter方法:getter的返回類型是否匹配setter的參數類型? 在org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:705) 在org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:697) 在org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult。的java:99) 在org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:226) 在org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace(ValidationUtils.java:224) 在org.springframework.validation.ValidationUtils。 rejectIfEmptyOrWhitespace(ValidationUtils.java:182)
你確定IBM RAD IDE環境已經到位編譯的用戶?我懷疑它缺少更新的用戶。 – kosa
是的,我想是的。你可以詳細說明'缺少更新的用戶'.. – Sandeep
我的意思是,你的RAD運行時可能沒有編譯用戶類與securityAnswers。我會建議做一個完整的清理和重建。 – kosa