title: java.lang.NoClassDefFoundError: com/opensymphony/xwork2/config/FileManagerProvider
body: <p>I have done a project using struts2. Now I am trying to incorporate tiles into my project, so I started learning tiles. I am getting following error in console while building my first sample pages itself.</p>
  
  <pre><code>SEVERE: Exception starting filter struts2
  java.lang.NoClassDefFoundError: com/opensymphony/xwork2/config/FileManagerProvider
  at org.apache.struts2.dispatcher.Dispatcher.init_FileManager(Dispatcher.java:352)
  at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:481)
  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:4809)
  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
  at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
  at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
  at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
  at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1862)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.config.FileManagerProvider
  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
  ... 20 more
  </code></pre>
  
  <p>Going over Internet I thought error may be because of jars I am using... So I am posting my jars too.</p>
  
  <p><img src="https://i.stack.imgur.com/0f52r.png" alt="enter image description here"></p>
  
  <p>My struts.xml file is </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;
  
  &lt;struts&gt;
  
  &lt;package name="default" extends="struts-default"&gt;
  
  
      &lt;result-types&gt;
          &lt;result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/&gt;
      &lt;/result-types&gt;
  
      &lt;action name="*Link" method="{1}" class="com.classes.JustJsps"&gt;
          &lt;result name="welcome"  type="tiles"&gt;welcome&lt;/result&gt;
          &lt;result name="login"    type="tiles"&gt;login  &lt;/result&gt;
      &lt;/action&gt;
  
  &lt;/package&gt;
  &lt;/struts&gt;
  </code></pre>
  
  <p>My tiles.xml file is</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
  &lt;!DOCTYPE tiles-definitions PUBLIC
     "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
     "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"&gt;
  &lt;tiles-definitions&gt;
  &lt;definition name="welcome" template="/baseLayout.jsp"&gt;  
      &lt;put-attribute name="title"     value="DReST" type="string" /&gt; 
      &lt;put-attribute name="myHeader"  value="/head.jsp"/&gt;   
      &lt;put-attribute name="myMenu"    value="/menu.jsp"/&gt;
      &lt;put-attribute name="myBody"    value="/home.jsp"/&gt;
      &lt;put-attribute name="myFooter"  value="/footer.jsp"/&gt;
  &lt;/definition&gt;  
  &lt;definition name="login" extends="welcome"&gt;
      &lt;put-attribute name="myBody"    value="/login.jsp"/&gt;
  &lt;/definition&gt;
  &lt;/tiles-definitions&gt;
  </code></pre>
  
  <p>My web.xml is </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns="http://java.sun.com/xml/ns/javaee"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns     /javaee/web-app_3_0.xsd" 
       id="WebApp_ID" 
       version="3.0"&gt;
  
  &lt;display-name&gt;Tiles&lt;/display-name&gt;
  &lt;context-param&gt;
      &lt;param-name&gt;org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG&lt;/param-name&gt;
      &lt;param-value&gt;/WEB-INF/tiles.xml&lt;/param-value&gt;
  &lt;/context-param&gt;
  &lt;listener&gt;
      &lt;listener-class&gt;org.apache.struts2.tiles.StrutsTilesListener&lt;/listener-class&gt;
  &lt;/listener&gt;
  
  
  &lt;filter&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
      &lt;filter-    class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
  &lt;/filter&gt;
  &lt;filter-mapping&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
      &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
  &lt;/filter-mapping&gt;
  
  
  &lt;welcome-file-list&gt;
      &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
  &lt;/welcome-file-list&gt;
  
  &lt;/web-app&gt;
  </code></pre>
  
  <p>index.jsp</p>
  
  <pre><code>&lt;META HTTP-EQUIV="Refresh" CONTENT="0;URL=welcomeLink.action"&gt;
  </code></pre>
  
  <p><code>welcomeLink.action</code> returns 'welcome'. What is the mistake I am doing?</p>