title: org.apache.struts2.json.JSONResult class not found exception
body: <p>I am working on struts 2 with struts jquery grid.But when I try to run it tomcat throws following exception</p>
  
  <pre><code>java.lang.ClassNotFoundException: org.apache.struts2.json.JSONResult
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1295)
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147)
      at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)
      at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:135)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:608)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:578)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:534)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
      at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
      at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
      at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
      at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:105)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  
  Jul 11, 2016 10:30:16 AM com.opensymphony.xwork2.config.providers.InterceptorBuilder warn
  WARNING: Unable to load config class org.apache.struts2.json.JSONValidationInterceptor at interceptor - jar:file:/G:/LIC/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MIS/WEB-INF/lib/struts2-json-plugin-2.3.8-sources.jar!/struts-plugin.xml:16:107 probably due to a missing jar, which might be fine if you never plan to use the jsonValidation interceptor
  Jul 11, 2016 10:30:16 AM com.opensymphony.xwork2.config.providers.InterceptorBuilder error
  SEVERE: Actual exception
  Caught Exception while registering Interceptor class org.apache.struts2.json.JSONValidationInterceptor - interceptor - jar:file:/G:/LIC/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MIS/WEB-INF/lib/struts2-json-plugin-2.3.8-sources.jar!/struts-plugin.xml:16:107
      at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:64)
      at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:209)
      at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1114)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:932)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:945)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:968)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:537)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
      at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
      at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
      at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
      at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:105)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: java.lang.ClassNotFoundException: org.apache.struts2.json.JSONValidationInterceptor
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1295)
      at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147)
      at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)
      at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:135)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:188)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:178)
      at com.opensymphony.xwork2.factory.DefaultInterceptorFactory.buildInterceptor(DefaultInterceptorFactory.java:42)
      ... 28 more
  
  Jul 11, 2016 10:30:16 AM org.apache.struts2.dispatcher.Dispatcher error
  SEVERE: Dispatcher initialization failed
  Unable to load configuration. - [unknown location]
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
      at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
      at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
      at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
      at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:105)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: Parent package is not defined: action-default - [unknown location]
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildPackageContext(XmlConfigurationProvider.java:674)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:523)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
      ... 17 more
  
  Jul 11, 2016 10:30:16 AM org.apache.catalina.core.StandardContext filterStart
  SEVERE: Exception starting filter struts2
  Unable to load configuration. - [unknown location]
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:493)
      at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
      at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
      at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:105)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: Unable to load configuration. - [unknown location]
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
      at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
      ... 14 more
  Caused by: Parent package is not defined: action-default - [unknown location]
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildPackageContext(XmlConfigurationProvider.java:674)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:523)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
      ... 17 more
  </code></pre>
  
  <p>Here is my code of struts.xml </p>
  
  <pre><code> &lt;struts&gt;
      &lt;constant name="struts.devMode" value="true"&gt;&lt;/constant&gt;
      &lt;constant name="struts.custom.i18n.resources" value="resources.myvalidation"&gt;&lt;/constant&gt;
  &lt;package name="mypackage" namespace="/" extends="struts-default, json-default, action-default"&gt;
      &lt;result-types&gt;
                  &lt;result-type name="json" class="org.apache.struts2.json.JSONResult" default="true"/&gt;
                  &lt;result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/&gt;
              &lt;/result-types&gt;
  &lt;action name="misinfo" class="com.dao.impl.JsonActionDaoImpl"&gt;
          &lt;result name="success"&gt;/WEB-INF/jsp/mis.jsp&lt;/result&gt;
          &lt;result name="input"&gt;/WEB-INF/jsp/mis.jsp&lt;/result&gt;
          &lt;/action&gt;
          &lt;action name="jsontable" class="com.dao.impl.JsonActionDaoImpl"&gt;
          &lt;result name="success"&gt;/WEB-INF/jsp/mis.jsp&lt;/result&gt;
          &lt;/action&gt;
  &lt;/package&gt;
  &lt;/struts&gt;
  </code></pre>
  
  <p>and I have all the required libraries including struts2-json-plugin-2.3.8-sources.jar under WEB-INF/lib folder .</p>