title: Struts2 AnnotationValidationInterceptor
body: <p>I am having a frustrating time implementing struts2-jquery-plugin-3.6.0 into a Struts2 2.3.14.3 website.  I recently updated the Struts2 version to 2.3.14.3, and all its dependencies, and the website functions fully and properly.  I am now trying to update some tables to look more modern, like <a href="http://struts.jgeppert.com/struts2-jquery-showcase/index.action" rel="nofollow">this</a>, (look in the widgets tab). </p>
  
  <p>My .jsp page is getting read properly, but the sj: tags are not being displayed properly. I know the sj: tags are being read properly because if I have mistakes in the tags, the webpage errors.  But when I have the tags correct, the tags are partianlly displayed and I get a weird error the log.  the log says this:</p>
  
  <pre><code>2013.06.18 13:21:00.799 WARN   CommonsLogger.warn: Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor - vfszip:/C:/JBoss-EAP-5.1.2-4/jboss-as/server/CDMSMailbox2/deploy/CDMSMailboxWeb_v2.war/WEB-INF/lib/struts2-core-2.3.14.3.jar/struts-default.xml:167:127 probably due to a missing jar, which might be fine if you never plan to use the validation interceptor
  2013.06.18 13:21:00.819 ERROR  CommonsLogger.error: Actual exception
  Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - vfszip:/C:/JBoss-EAP-5.1.2-4/jboss-as/server/CDMSMailbox2/deploy/CDMSMailboxWeb_v2.war/WEB-INF/lib/struts2-core-2.3.14.3.jar/struts-default.xml:167:127
      at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77)
      at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1101)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:919)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:932)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:955)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:524)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:473)
      at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
      at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.init(StrutsPrepareFilter.java:50)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:234)
      at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:332)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:90)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3783)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4409)
      at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:313)
      at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:145)
      at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
      at org.jboss.web.deployers.WebModule.startModule(WebModule.java:122)
      at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
      at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
      at com.sun.proxy.$Proxy38.start(Unknown Source)
      at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
      at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
      at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
      at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
      at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
      at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
      at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:297)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
      at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
      at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
      at org.jboss.system.ServiceController.start(ServiceController.java:460)
      at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
      at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
      at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
      at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
      at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)
      at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1454)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1172)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1193)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1113)
      at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
      at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826)
      at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:789)
      at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:699)
      at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
      at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
      at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
      at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403)
      at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
      at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
      at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:778)
      at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543)
      at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308)
      at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)
      at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
      at org.jboss.Main.boot(Main.java:221)
      at org.jboss.Main$1.run(Main.java:556)
      at java.lang.Thread.run(Unknown Source)
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492)
      at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:530)
      at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:528)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:528)
      at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:139)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:164)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:151)
      at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52)
      ... 86 more
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:132)
      at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
      at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:469)
      at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:484)
      at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:34)
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299)
      ... 95 more
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:502)
      at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:539)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:593)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:537)
      at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:130)
      ... 100 more
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301)
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
      ... 105 more
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:132)
      at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
      at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:469)
      at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:484)
      at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:34)
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:299)
      ... 107 more
  Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:502)
      at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:539)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:593)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:537)
      at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:130)
      ... 112 more
  Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:447)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
      ... 117 more
  Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:426)
      ... 118 more
  Caused by: Connection timed out: connect - [unknown location]
      at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:119)
      at com.opensymphony.xwork2.validator.DefaultValidatorFileParser.parseValidatorDefinitions(DefaultValidatorFileParser.java:118)
      at com.opensymphony.xwork2.validator.DefaultValidatorFactory.retrieveValidatorConfiguration(DefaultValidatorFactory.java:195)
      at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:184)
      at com.opensymphony.xwork2.validator.DefaultValidatorFactory.&lt;init&gt;(DefaultValidatorFactory.java:55)
      ... 123 more
  Caused by: java.net.ConnectException: Connection timed out: connect
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(Unknown Source)
      at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
      at java.net.PlainSocketImpl.connect(Unknown Source)
      at java.net.SocksSocketImpl.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at sun.net.NetworkClient.doConnect(Unknown Source)
      at sun.net.www.http.HttpClient.openServer(Unknown Source)
      at sun.net.www.http.HttpClient.openServer(Unknown Source)
      at sun.net.www.http.HttpClient.&lt;init&gt;(Unknown Source)
      at sun.net.www.http.HttpClient.New(Unknown Source)
      at sun.net.www.http.HttpClient.New(Unknown Source)
      at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
      at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
      at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
      at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
      at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
      at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
      at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
      at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
      at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:117)
      ... 127 more
  </code></pre>
  
  <p>My .jsp page has these tags in it:</p>
  
  <pre><code>    &lt;%@taglib prefix="s" uri="/struts-tags" %&gt;
  &lt;%@ taglib prefix="sj" uri="/struts-jquery-tags"%&gt;
  
  &lt;%@ taglib uri="http://displaytag.sf.net" prefix="display" %&gt; 
  
  &lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
  &lt;head&gt;
      &lt;sj:head jqueryui="true" jquerytheme="redmond" /&gt;
      &lt;title&gt;Personal Work List&lt;/title&gt;
  
      &lt;link href="&lt;s:url value='/styles/displaytag.css'/&gt;" rel="stylesheet" type="text/css" media="all"/&gt; 
  
      &lt;script type="text/javascript"&gt;
  
      ... 
  
            &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
  
        &lt;s:form id="form" theme="xhtml"&gt;      &lt;sj:datepicker id="date0" label="Select a Date" /&gt;      
  &lt;sj:datepicker value="%{dateValue}" id="date1" name="date1" label="Date Value from Action" /&gt;      &lt;sj:datepicker id="date2" name="nameValue" label="Date Value by Name" /&gt;      
  &lt;sj:datepicker value="today" id="date3" name="date3" displayFormat="dd.mm.yy" label="Today" /&gt;      &lt;sj:datepicker value="yesterday" id="date4" name="date4" displayFormat="mm/dd/yy" label="Yesterday" /&gt;      
  &lt;sj:datepicker value="tomorrow" id="date5" name="date5" displayFormat="DD, d MM yy" label="Tomorrow" /&gt;      
  &lt;sj:datepicker value="2004-08-14" id="date6" name="date6" displayFormat="d M, yy" label="String Value" /&gt;    
  &lt;/s:form&gt;
  
     &lt;sj:datepicker  name="date" label="Aggrement DATE" changeMonth="true" changeYear="true"/&gt;
  
     &lt;sj:textarea&gt;&lt;/sj:textarea&gt;
  
      ...
  
      &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>These tags get read and partially displayed.  Any ideas about what/how is causing this error? Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor</p>