Hi All,

 

I setup a struts/validator webapp this evening using 
org.apache.struts.validator.DynaValidatorForm on the form bean in struts-config and 
started receiving NoSuchMethodException exceptions linked to the built-in validation 
rules I was requested for my fields. The stack traces can be seen below as can further 
down my validation.xml file. 

 

I have found a solution to this problem that involves modifying the 
validation-rules.xml file and replacing org.apache.struts.action.ActionMessages with 
org.apache.struts.action.ActionErrors as follows for each validation I wish to use ...

 

methodParams="java.lang.Object,

                       org.apache.commons.validator.ValidatorAction,

                       org.apache.commons.validator.Field,

                       org.apache.struts.action.ActionErrors, ...

 

The validation-rules.xml was straight out of the struts-examples application so can 
anybody suggest why I am having to make this modification to get validation working? 

 

Kind regards, Allistair.

 

STACK TRACES

============

 

2004-09-15 21:24:44,937 - ERROR (org.apache.commons.validator.Validator:461) - 
reflection: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, 
org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, 
org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)

java.lang.NoSuchMethodException: 
org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, 
org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, 
org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)

      at java.lang.Class.getMethod(Unknown Source)

      at 
org.apache.commons.validator.Validator.validateFieldForRule(Validator.java:401)

      at org.apache.commons.validator.Validator.validateField(Validator.java:544)

      at org.apache.commons.validator.Validator.validate(Validator.java:582)

      at 
org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:151)

      at 
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:942)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

      at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

      at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

      at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

      at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:106)

      at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

      at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:576)

      at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

      at java.lang.Thread.run(Unknown Source)

 

 

 

2004-09-15 21:31:23,890 - DEBUG (org.apache.struts.action.RequestProcessor:940) -  
Validating input form properties

2004-09-15 21:31:23,906 - ERROR (org.apache.commons.validator.Validator:461) - 
reflection: org.apache.struts.validator.FieldChecks.validateEmail(java.lang.Object, 
org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, 
org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)

java.lang.NoSuchMethodException: 
org.apache.struts.validator.FieldChecks.validateEmail(java.lang.Object, 
org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, 
org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)

      at java.lang.Class.getMethod(Unknown Source)

      at 
org.apache.commons.validator.Validator.validateFieldForRule(Validator.java:401)

      at org.apache.commons.validator.Validator.validateField(Validator.java:544)

      at org.apache.commons.validator.Validator.validate(Validator.java:582)

      at 
org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:151)

      at 
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:942)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

      at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

      at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

      at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

      at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:106)

      at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

      at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:576)

      at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

      at java.lang.Thread.run(Unknown Source)

 

 

VALIDATION.XML

==============

 

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE form-validation SYSTEM 
"http://jakarta.apache.org/commons/dtds/validator_1_1.dtd";>

 

<form-validation>

    <formset>

        <form name="contactDetailsForm">

            <field property="email" depends="required,email">

                        <arg key=" contactDetailsForm.email " />

                  </field>

            </form>

      </formset>

</form-validation>

 


<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
-------------------------------------------------------
QAS Ltd.
Developers of QuickAddress Software
<a href="http://www.qas.com";>www.qas.com</a>
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT>

Reply via email to