I am so frustrated, I tried to get custom validations working all evening
and now it's 2:30 am....  Please help.  I would appreciate it immensely.

I have a form with many validations.  All validations get called and work
fine, except for a custom validation.  I get a "NoSuchMethodException" in
the console, although I do have the following.

1) \classes\com\rhoderunner\jsurvey\validators\IdenticalValidator.class
2) a method with the same signature as defined in validator-rules.
3) from the console, [INFO] ValidatorResources - -Add ValidatorAction:
identical,com.rhoderunner.jsurvey.validators.IdenticalValidator

I am using commons-validator 1.0.1
The jars from tiles-blank-struts1-1 webapp
I have tried many different versions/combos of the libraries, with no luck.

The following is my IdenticalValidator.java file, stack trace,
validator-rules.xml fragment and validation.xml fragment.


         <field    property="surveyUser.email"
             depends="required,email,identical">
               <arg0 key="registrationForm.email.displayname"/>
   <var>
    <var-name>secondProperty</var-name>
    <var-value>emailConfirm</var-value>
   </var>
         </field>


20953 [HttpProcessor[8081][4]] ERROR validator.Validator  - reflection: null
    java.lang.NoSuchMethodException
       at java.lang.Class.getMethod0(Native Method)
       at java.lang.Class.getMethod(Class.java:888)
       at
org.apache.commons.validator.Validator.validateFieldForRule(Validator.java:3
93)
       at
org.apache.commons.validator.Validator.validateField(Validator.java:52)
       at
org.apache.commons.validator.Validator.validate(Validator.java:551)
       at
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:152)
       at
org.apache.struts.action.RequestProcessor.processValidate(RequestProcssor.ja
va:902)
       at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:245)
       at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:128)




FROM validator-rules.xml:

 <validator name="identical"
  classname="com.rhoderunner.jsurvey.validators.IdenticalValidator"
  method="validateIdentical"
  methodparams="java.lang.Object,
                 org.apache.commons.validator.ValidatorAction,
                    org.apache.commons.validator.Field,
                    org.apache.struts.action.ActionErrors,
                    javax.servlet.http.HttpServletRequest,
                       javax.servlet.ServletContext"
  depends="required"
  msg="errors.identical">
      </validator>

package com.rhoderunner.jsurvey.validators;

import java.io.Serializable;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.*;
import org.apache.struts.action.*;
import org.apache.struts.util.StrutsValidatorUtil;


public class IdenticalValidator implements Serializable {
    public static boolean validateIdentical(Object bean, ValidatorAction va,
                                            Field field, ActionErrors
errors,
                                            HttpServletRequest request,
                                            javax.servlet.ServletContext
context) {
        System.out.println("Hello world");

        return true;
    }
}


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to