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]