Bill Siggelkow <billsigg <at> bellsouth.net> writes:

> 
> It looks like to me that the Validator is not finding your method 
> definition. Recheck the declaration in the validator-rules.xml file. 
> The signature and class name there must match your actual class and 
> method exactly.
> 
> On 2005-03-03 14:28:52 -0500, Sivakumar Santharam <ambalam <at> gmail.com> 
said:
> 
> > I am using struts 1.2.4 I created a new custom validation method in a 
> > validator class. I added a new validation rule to the 
> > validator-rules.xml file and new validation definitions to the 
> > validation.xml file. I get the following error when the custome 
> > validation method is called. When I tried to debug by setting a debug 
> > point in the validation method, it didn't stop. I don't have a clue 
> > what is happening. Thanks in advance. Siva
> > 
> > Error trace:
> > -----------
> > [3/3/05 14:21:48:926 EST] 7de0aacf ValidatorForm E 
> > org.apache.struts.validator.ValidatorForm  TRAS0014I: The following 
> > exception was logged org.apache.commons.validator.ValidatorException: 
> > gov.tva.wrkrcomp.util.Validator.validateInt(java.lang.Object, 
> > org.apache.commons.validator.ValidatorAction, 
> > org.apache.commons.validator.Field, 
> > org.apache.struts.action.ActionMessages, 
> > javax.servlet.http.HttpServletRequest)
> >     at org.apache.commons.validator.ValidatorAction.loadValidationMethod
> > (ValidatorAction.java:627)
> >     at org.apache.commons.validator.ValidatorAction.executeValidationMethod
> > (ValidatorAction.java:557)
> >     at org.apache.commons.validator.Field.validateForRule(Field.java:811)
> >     at org.apache.commons.validator.Field.validate(Field.java:890)
> >     at org.apache.commons.validator.Form.validate(Form.java:174)
> >     at org.apache.commons.validator.Validator.validate(Validator.java:367)
> >     at org.apache.struts.validator.ValidatorForm.validate
> > (ValidatorForm.java:112)
> >     at org.apache.struts.action.RequestProcessor.processValidate
> > (RequestProcessor.java:921)
> >     at org.apache.struts.action.RequestProcessor.process
> > (RequestProcessor.java:206)
> >     at org.apache.struts.action.ActionServlet.process
> > (ActionServlet.java:1164)
> >     at org.apache.struts.action.ActionServlet.doPost
> > (ActionServlet.java:415)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >     at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService
> > (StrictServletInstance.java:110)
> >     at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service
> > (StrictLifecycleServlet.java:174)
> >     at com.ibm.ws.webcontainer.servlet.IdleServletState.service
> > (StrictLifecycleServlet.java:313)
> >     at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service
> > (StrictLifecycleServlet.java:116)
> >     at com.ibm.ws.webcontainer.servlet.ServletInstance.service
> > (ServletInstance.java:283)
> >     at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch
> > (ValidServletReferenceState.java:42)
> >     at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch
> > (ServletInstanceReference.java:40)
> >     at 
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch
> > (WebAppRequestDispatcher.java:983)
> >     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch
> > (WebAppRequestDispatcher.java:564)
> >     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward
> > (WebAppRequestDispatcher.java:200)
> >     at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward
> > (WebAppInvoker.java:119)
> >     at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook
> > (WebAppInvoker.java:276)
> >     at 
com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation
> > (CachedInvocation.java:71)
> >     at 
com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke
> > (CacheableInvocationContext.java:116)
> >     at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI
> > (ServletRequestProcessor.java:186)
> >     at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service
> > (OSEListener.java:334)
> >     at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest
> > (HttpConnection.java:56)
> >     at com.ibm.ws.http.HttpConnection.readAndHandleRequest
> > (HttpConnection.java:618)
> >     at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
> >     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
> > .
> >                                  
> > org.apache.commons.validator.ValidatorException: 
> > gov.tva.wrkrcomp.util.Validator.validateInt(java.lang.Object, 
> > org.apache.commons.validator.ValidatorAction, 
> > org.apache.commons.validator.Field, 
> > org.apache.struts.action.ActionMessages, 
> > javax.servlet.http.HttpServletRequest)
> >     at org.apache.commons.validator.ValidatorAction.loadValidationMethod
> > (ValidatorAction.java:627)
> >     at org.apache.commons.validator.ValidatorAction.executeValidationMethod
> > (ValidatorAction.java:557)
> >     at org.apache.commons.validator.Field.validateForRule(Field.java:811)
> >     at org.apache.commons.validator.Field.validate(Field.java:890)
> >     at org.apache.commons.validator.Form.validate(Form.java:174)
> >     at org.apache.commons.validator.Validator.validate(Validator.java:367)
> >     at org.apache.struts.validator.ValidatorForm.validate
> > (ValidatorForm.java:112)
> >     at org.apache.struts.action.RequestProcessor.processValidate
> > (RequestProcessor.java:921)
> >     at org.apache.struts.action.RequestProcessor.process
> > (RequestProcessor.java:206)
> >     at org.apache.struts.action.ActionServlet.process
> > (ActionServlet.java:1164)
> >     at org.apache.struts.action.ActionServlet.doPost
> > (ActionServlet.java:415)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >     at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService
> > (StrictServletInstance.java:110)
> >     at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service
> > (StrictLifecycleServlet.java:174)
> >     at com.ibm.ws.webcontainer.servlet.IdleServletState.service
> > (StrictLifecycleServlet.java:313)
> >     at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service
> > (StrictLifecycleServlet.java:116)
> >     at com.ibm.ws.webcontainer.servlet.ServletInstance.service
> > (ServletInstance.java:283)
> >     at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch
> > (ValidServletReferenceState.java:42)
> >     at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch
> > (ServletInstanceReference.java:40)
> >     at 
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch
> > (WebAppRequestDispatcher.java:983)
> >     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch
> > (WebAppRequestDispatcher.java:564)
> >     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward
> > (WebAppRequestDispatcher.java:200)
> >     at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward
> > (WebAppInvoker.java:119)
> >     at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook
> > (WebAppInvoker.java:276)
> >     at 
com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation
> > (CachedInvocation.java:71)
> >     at 
com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke
> > (CacheableInvocationContext.java:116)
> >     at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI
> > (ServletRequestProcessor.java:186)
> >     at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service
> > (OSEListener.java:334)
> >     at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest
> > (HttpConnection.java:56)
> >     at com.ibm.ws.http.HttpConnection.readAndHandleRequest
> > (HttpConnection.java:618)
> >     at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
> >     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
> 

Bill,
Thanks for your reply. I was trying to write a custome validation method to 
see whether it is working or not. I checked the method definition 
(validateInt) and the declaration (int) in the validator-rules.xml and it 
looks same. 
Here is the sample code. I removed the generic validation methods to make it 
simple. Thanks Siva

------ validator class --
public static boolean validateInt(Object bean,ValidatorAction action,
                Field field,ActionErrors errors,HttpServletRequest request) {
                String value = ValidatorUtils.getValueAsString(bean, 
field.getProperty());
                boolean isFieldValid = false;
                try {
                   Integer.parseInt(value);
                  isFieldValid = true;
                } catch (Exception e) {
                        errors.add(field.getKey(), Resources.getActionError
(request, action, field));
                        isFieldValid = false;
                }
                return isFieldValid;
        }

---------- validation-rules.xml ---------
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules 
Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd";>

<form-validation>

   <global>
      <validator name="int"
            classname="gov.tva.wrkrcomp.util.Validator"
               method="validateInt"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.integer"/>
   </global>

</form-validation>

---- validation.xml -----------
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules 
Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd";>
     <form-validation>

    <formset>
        <form name="/addDependent">
          <field property="phoneAreaCd" depends="required,int,minlength">
             <arg0 key="dependent.phone.areacd" />
                         <arg1 name="minlength" key="${var:minlength}" 
resource="false" />
                <var>
                        <var-name>minlength</var-name>
                        <var-value>3</var-value>
                        </var>             
          </field>
        </form>
        
    </formset>
</form-validation>




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

Reply via email to