I just upgraded from Struts 1.2.8 to 1.3.8 and my custom Validators
aren't working.  The standard included validators all work fine.  I have
commons-validator-1.3.1.jar in my .war file web-inf/lib.  I deleted the
stand alone validator-rules.xml file from same.  

Any assistance would be appreciated.



This is in Validation.xml

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

>....>

        <validator name="achRouting"
              classname="cc.nisc.css.web.ACHCheck"
                 method="validateACHRouting"
           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.achRouting"/>




This is my custom validator class:


package cc.nisc.css.web;

import org.apache.commons.validator.Field;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.util.ValidatorUtils;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.validator.Resources;

import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;

/**
 * @author Greg
 * @version $Id: ACHCheck.java,v 1.1, 2006-01-17 17:46:15Z, Greg$
 */
public class ACHCheck implements Serializable {

    public static boolean validateACHRouting(Object bean,
ValidatorAction va,
                                             Field field, ActionMessages
errors,
                                             HttpServletRequest request)
{
        String value;

        if (isString(bean)) {
            value = (String) bean;
        }
        else {
            value = ValidatorUtils.getValueAsString(bean,
field.getProperty());
        }

        if (GenericValidator.isBlankOrNull(value)) {
            return true;
        }

        if (value.length() != 9) {
            errors.add(field.getKey(),
            Resources.getActionMessage(request, va, field));
            return false;
        }

        int n = 0;

        for (int i = 0; i < value.length(); i += 3) {
            n += CharToInt(value.charAt(i)) * 3
            + CharToInt(value.charAt(i + 1)) * 7
            + CharToInt(value.charAt(i + 2));
        }

        // If the resulting sum is an even multiple of ten (but not
zero),
        // the aba routing number is good.
        if (n != 0 && n % 10 == 0)
            return true;
        else {
            errors.add(field.getKey(),
            Resources.getActionMessage(request, va, field));
            return false;
        }
    }

    public static int CharToInt(char chr) {
        return Integer.parseInt(CharToString(chr));
    }

    public static String CharToString(char chr) {
        return String.valueOf(chr);
    }

    private static Class stringClass = new String().getClass();

    private static boolean isString(Object o) {
        if (o == null) return true;
        return (stringClass.isInstance(o));
    }
}





This is my plug-in definition in struts-config.xml :


    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
                property="pathnames"
                value="/org/apache/struts/validator/validator-rules.xml,
                        /WEB-INF/validation.xml"/>
    </plug-in>




I'm getting the following stack trace:

2008-04-25 15:45:48,580 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/css].[
action]] Servlet.service() for servlet action threw exception

java.lang.NoClassDefFoundError:
org/apache/commons/validator/ValidatorAction
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
        at java.lang.Class.getMethod0(Class.java:2670)
        at java.lang.Class.getMethod(Class.java:1603)
        at
org.apache.commons.validator.ValidatorAction.loadValidationMethod(Valida
torAction.java:600)
        at
org.apache.commons.validator.ValidatorAction.executeValidationMethod(Val
idatorAction.java:532)
        at
org.apache.commons.validator.Field.validateForRule(Field.java:796)
        at org.apache.commons.validator.Field.validate(Field.java:876)
        at org.apache.commons.validator.Form.validate(Form.java:288)
        at
org.apache.commons.validator.Validator.validate(Validator.java:351)
        at
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:11
6)
        at
org.apache.struts.chain.commands.servlet.ValidateActionForm.validate(Val
idateActionForm.java:58)
        at
org.apache.struts.chain.commands.AbstractValidateActionForm.execute(Abst
ractValidateActionForm.java:120)
        at
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommand
Base.java:51)
        at
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
        at
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.jav
a:304)
        at
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
        at
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableReq
uestProcessor.java:283)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
        at
cc.nisc.css.web.filter.ClearCacheFilter.doFilter(ClearCacheFilter.java:7
0)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
        at
cc.nisc.css.web.filter.CssSecurityFilter.doFilter(CssSecurityFilter.java
:421)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
        at
cc.nisc.css.web.filter.CookieFilter.doFilter(CookieFilter.java:37)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
        at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.java:96)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:230)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:175)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
sociationValve.java:179)
        at
org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(Cluste
redSessionValve.java:87)
        at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:84)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:102)
        at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConn
ectionValve.java:157)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562
)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2
62)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84
4)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
Http11Protocol.java:583)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:619)

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

Reply via email to