I am looking to set-up validation, but I am getting errors. I added the following to my struts.xml:
<package name="conap" extends="struts-default"> <interceptors> <interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/> <interceptor-stack name="validationStack"> <interceptor-ref name="defaultStack"/> <interceptor-ref name="validation"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack"/> </package> The class that I want to validate is defined as follows: @ParentPackage("conap") public class SubmitAction extends ActionSupport implements ModelDriven<Application> { ... @VisitorFieldValidator public Application getModel() { return application; } ... @Action( results = { @Result(name = "success", location = "/WEB-INF/content/soldier/login-success.jsp"), @Result(name = "error", location = "/WEB-INF/content/soldier/login-error.jsp")}, interceptorRefs = {...@interceptorref("validationStack")} ) public String execute() throws Exception { ... } } The class that I want to validate is defined as follows: public class Application { ... @RequiredFieldValidator(type = ValidatorType.FIELD, message = "Major is required") public void setMajorCd(String majorCd) { this.majorCd = majorCd; } ... @RequiredFieldValidator(type = ValidatorType.FIELD, message = "Expected Entry Date is required") public void setExpectedEntryDate(String expectedEntryDate) { this.expectedEntryDate = expectedEntryDate; } } When I submit to the action, I get an exception: Struts Problem Report Struts Problem Report Struts has detected an unhandled exception: Messages: File: com/opensymphony/xwork2/util/TextParseUtil.java Line number: 155 ________________________________ Stacktraces java.lang.NullPointerException com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:155) com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:116) com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:38) com.opensymphony.xwork2.validator.validators.ValidatorSupport.getMessage(ValidatorSupport.java:99) com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.validateObject(VisitorFieldValidator.java:156) com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.validate(VisitorFieldValidator.java:130) com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:183) com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:94) com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:89) com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:208) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:247) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) mil.army.usaac.conap.LogBackFilter.doFilter(LogBackFilter.java:43) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288) org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) ________________________________ You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set: struts.devMode=false in your WEB-INF/classes/struts.properties file. Norris Shelton Software Engineer Sun Certified Java 1.1 Programmer Shelton Consulting, LLC ICQ# 26487421 AIM NorrisEShelton YIM norrisshelton