I've been using the DefaultBeanValidator successfully for several months. Suddenly I am getting the following exception:
It appears that my Organization domain class has been replaced by a javassist proxy which is not recognized by the DefaultBeanValidator. I wasn't aware that I was using javassist, but assume that it is buried deep inside Spring somewhere.Code:java.lang.IllegalArgumentException: Validator [class org.springmodules.validation.commons.DefaultBeanValidator] does not support [class com.silversky.scheduler.domain.Organization_$$_javassist_36] at org.springframework.validation.ValidationUtils.invokeValidator(ValidationUtils.java:60) at org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:395) at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:263) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at
I have not changed any of my validator configuration, but here is what I have:
Spring configuration file:
validation.xml:Code:<bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory"> <property name="validationConfigLocations"> <list> <value>/WEB-INF/validator/validator-rules.xml</value> <value>/WEB-INF/validator/validation.xml</value> </list> </property> </bean> <bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator"> <property name="validatorFactory" ref="validatorFactory"/> </bean>
Should the domain object be replaced by the proxy like that, or is this a configuration problem?Code:<form-validation> <!-- Define global validation config in validation-global.xml --> <formset> <form name="organization"> <field property="id" depends="required"> <arg0 key="organization.id"/> </field> <field property="name" depends="required"> <arg0 key="organization.name"/> </field> <field property="status" depends="required"> <arg0 key="organization.status"/> </field> <field property="startDate" depends="required"> <arg0 key="organization.startDate"/> </field> <field property="endDate" depends="required"> <arg0 key="organization.endDate"/> </field> </form> ...


Reply With Quote
