Мы столкнулись с проблемой в среде IBM RAD IDE (IBM JDK 1.6 в качестве среды выполнения JRE) во время выполнения контрольного примера.Тот же код отлично работает с Springsource IDE (Sun JDK 1.6 в качестве среды выполнения JRE).Это проблема с JDK или со средой Spring.Краткая история кода: существует Java-бин, как показано ниже
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);
}
}
, когда мы пытаемся проверить «securityAnswers» с помощью
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "securityAnswers", "seqQans.obj.required","security Question list cannot be empty");
, мы получаем это исключение.
Причина: org.springframework.beans.NotReadablePropertyException: недопустимое свойство 'securityAnswers' класса бина [User]: свойство бина 'securityAnswers' недоступно для чтения или имеет недопустимый метод получателя: соответствует ли возвращаемый тип получателя совпадающему параметрутип сеттера?в org.springframework.beans.BeanWrapperImpl.getPropertyValue (BeanWrapperImpl.java:705) в org.springframework.beans.BeanWrapperImpl.getPropertyValue (BeanWrapperImpl.java:69) в org.springframework.validation.AbstractBindingResult.getFieldValue (AbstractBindingResult.java:226) в org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace (ValidationUtils.182)