title: Struts The absolute uri: http://struts.apache.org/tags-bean cannot be resolved in either web.xml or the jar files deployed with this application
body: <p>Using Servlet 3.0, Maven 4.0, JDK 8 with compliance 1.8.
  I don't know if the problem is due to eclipse not being able to build the project against the libraries correctly, or if it's tomcat. It may be a permission issue, despite the fact that i'm running both tomcat and eclipse as root, but who knows. At this point i'm starting to run out of ideas.</p>
  
  <p><a href="https://i.stack.imgur.com/V7RGR.png" rel="nofollow noreferrer">Libs Imported</a></p>
  
  <p>The index.jsp</p>
  
  <pre><code>    &lt;%@ page language="java" %&gt;
  &lt;%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %&gt;
  &lt;%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %&gt;
  &lt;%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %&gt;
  &lt;%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %&gt;
  &lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
  &lt;meta http-equiv="Content-Type"&gt;
  &lt;title&gt;Page d'Acceuil&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
      &lt;html:form action="/ajouter"&gt;
          &lt;table border="1"&gt;
              &lt;caption&gt;Gestion des etudiants STRUTS 1&lt;/caption&gt;
              &lt;tr&gt;
                  &lt;td&gt;Nom:&lt;input type="text" name="nom"/&gt;&lt;/td&gt;
                  &lt;td&gt;Prenom:&lt;input type="text" name="prenom"/&gt;&lt;/td&gt;
                  &lt;td&gt;Cin:&lt;input type="text" name="cin" /&gt;&lt;/td&gt;
              &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;input type="submit" value="Recherche Etudiant" onclick="recherche()"/&gt;&lt;/td&gt;
              &lt;td&gt;&lt;input type="submit" value="Ajouter Etudiant" onclick="ajout()"/&gt;&lt;/td&gt;
              &lt;td&gt;&lt;input type="submit" value="Supprimer Etudiant" onclick="sup()"/&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/table&gt;
      &lt;/html:form&gt;
  &lt;/body&gt;
          &lt;script type="text/javascript"&gt;
              function ajout(){
                  this.document.forms[0].action="ajouter.do";
                  this.document.forms[0].submit();
              }
              function recherche(){
                  this.document.forms[0].action="rechercher.do";
                  this.document.forms[0].submit();
              }
              function sup(){
                  this.document.forms[0].action="supprimer.do";
                  this.document.forms[0].submit();
              }
          &lt;/script&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>My index.jsp requests leads to either this error :</p>
  
  <pre><code>    Type Exception Report
  
  Message The absolute uri: http://struts.apache.org/tags-bean cannot be resolved in either web.xml or the jar files deployed with this application
  
  Description The server encountered an unexpected condition that prevented it from fulfilling the request.
  
  Exception
  
  org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-bean cannot be resolved in either web.xml or the jar files deployed with this application
      org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
      org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
      org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
      org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:250)
      org.apache.jasper.compiler.TagLibraryInfoImpl.&lt;init&gt;(TagLibraryInfoImpl.java:125)
      org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:421)
      org.apache.jasper.compiler.Parser.parseDirective(Parser.java:479)
      org.apache.jasper.compiler.Parser.parseElements(Parser.java:1435)
      org.apache.jasper.compiler.Parser.parse(Parser.java:139)
      org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
      org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
      org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:201)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:358)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:338)
      org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
      org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:580)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  </code></pre>
  
  <p>Or this one : </p>
  
  <pre><code>    Type Exception Report
  
  Message java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
  
  Description The server encountered an unexpected condition that prevented it from fulfilling the request.
  
  Exception
  
  org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
      org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:176)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  
  Root Cause
  
  java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
      java.net.URLClassLoader.findClass(URLClassLoader.java:382)
      org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
      org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62)
      org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  
  Note The full stack trace of the root cause is available in the server logs.
  </code></pre>
  
  <p>My web.xml is as following, as you can see even if i supposedly shouldn't be adding these taglibs in there since i'm using servlet 3.0, i'm still declaring them just in case.</p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
  &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"&gt;
    &lt;display-name&gt;Etudiant&lt;/display-name&gt;
  
    &lt;!-- Servlet controleur de Struts --&gt;
    &lt;servlet&gt;
      &lt;servlet-name&gt;action&lt;/servlet-name&gt;
      &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;
      &lt;init-param&gt;
        &lt;param-name&gt;config&lt;/param-name&gt;
        &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;
      &lt;/init-param&gt;
      &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
  
    &lt;!-- Mapping des url avec la servlet --&gt;
    &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;action&lt;/servlet-name&gt;
      &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
  
    &lt;!-- page d'accueil de l'application --&gt;
    &lt;welcome-file-list&gt;
      &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
    &lt;/welcome-file-list&gt;
  
    &lt;jsp-config&gt;
    &lt;taglib&gt;
       &lt;taglib-uri&gt;
        http://struts.apache.org/tags-bean
       &lt;/taglib-uri&gt;
       &lt;taglib-location&gt;
        /WEB-INF/struts-bean.tld
       &lt;/taglib-location&gt;
  &lt;/taglib&gt;
  &lt;taglib&gt;
       &lt;taglib-uri&gt;
        http://struts.apache.org/tags-html
       &lt;/taglib-uri&gt;
       &lt;taglib-location&gt;
        /WEB-INF/struts-html.tld
       &lt;/taglib-location&gt;
  &lt;/taglib&gt;
  &lt;taglib&gt;
       &lt;taglib-uri&gt;
        http://struts.apache.org/tags-logic
       &lt;/taglib-uri&gt;
       &lt;taglib-location&gt;
        /WEB-INF/struts-logic.tld
       &lt;/taglib-location&gt;
  &lt;/taglib&gt;
    &lt;/jsp-config&gt;
  &lt;/web-app&gt;
  </code></pre>
  
  <p>My deployment assembly and java build path are also updated correctly to include those libs, but none of this seems to solution the problem. </p>
  
  <p>If you have any idea, i would gladly look into it. </p>