title: Maven cannot be cast to javax.servlet.Filter
body: <p>I'm beginning to develope a project using maven but when I launch it it say that my Filter cannot be cast to javax.servle.Filter.</p>
  
  <p>This is the exception:</p>
  
  <pre><code>    GRAVE: Exception starting filter FilterLogin
  java.lang.ClassCastException: it.tgi.cd.servlet.FilterLogin cannot be cast to javax.servlet.Filter
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:107)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
      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)
  </code></pre>
  
  <p>and this is my <strong>pom.xml</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;project xmlns="http://maven.apache.org/POM/4.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
      &lt;groupId&gt;it.project&lt;/groupId&gt;
      &lt;artifactId&gt;Projet&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;packaging&gt;war&lt;/packaging&gt;
  
  
      &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
              &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt;
              &lt;version&gt;5.2.2.Final&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
              &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
              &lt;version&gt;4.0.0-b01&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
              &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
              &lt;version&gt;1.7.21&lt;/version&gt;
          &lt;/dependency&gt;
  
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.tomcat&lt;/groupId&gt;
              &lt;artifactId&gt;tomcat-catalina&lt;/artifactId&gt;
              &lt;version&gt;8.0.32&lt;/version&gt;
          &lt;/dependency&gt;
  
  
      &lt;/dependencies&gt;
  
      &lt;build&gt;
          &lt;finalName&gt;SimpleProject&lt;/finalName&gt;
          &lt;plugins&gt;
  
              &lt;!-- Config: Maven Tomcat Plugin --&gt;
              &lt;!-- http://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin --&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.tomcat.maven&lt;/groupId&gt;
                  &lt;artifactId&gt;tomcat7-maven-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.2&lt;/version&gt;
                  &lt;!-- Config: contextPath and Port (Default - /SimpleProject : 8080) --&gt;
                  &lt;!--
                  &lt;configuration&gt;
                      &lt;path&gt;/&lt;/path&gt;
                      &lt;port&gt;8899&lt;/port&gt;
                  &lt;/configuration&gt;
                  --&gt;
              &lt;/plugin&gt;
  
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                  &lt;configuration&gt;
                      &lt;source&gt;1.7&lt;/source&gt;
                      &lt;target&gt;1.7&lt;/target&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  
  &lt;/project&gt;
  </code></pre>
  
  <p>Why I'm getting this error? </p>
  
  <p><strong>FilteLogin</strong></p>
  
  <pre><code>   package it.tgi.cd.servlet;
  
  import javax.servlet.*;
  import javax.servlet.annotation.WebFilter;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import java.io.IOException;
  
  
  @WebFilter(urlPatterns = {"/index.jsp", "/insert.jsp", "/search.jsp", "/addSongs.jsp", "/delete.jsp"}, filterName = "FilterLogin")
  public class FilterLogin implements javax.servlet.Filter {
      public void destroy() {
      }
  
      public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
  
          HttpServletRequest request = (HttpServletRequest) req;
          HttpServletResponse response = (HttpServletResponse) resp;
          if(request.getSession().getAttribute("user") != null) {
              chain.doFilter(req, resp);
          } else {
              response.sendRedirect("/login.jsp");
          }
      }
  
      public void init(FilterConfig config) throws ServletException {
      }
  
  }
  </code></pre>
  
  <p>I used "provide" as suggested and the exception disappear but now when I try to go to "localhost ecc.." there is an exception</p>
  
  <pre><code>   INFORMAZIONI: Starting ProtocolHandler ["http-bio-8080"]
  ott 04, 2016 3:06:42 PM org.apache.catalina.core.StandardWrapperValve invoke
  GRAVE: Servlet.service() for servlet [jsp] in context with path [/CDStore] threw exception [java.lang.NullPointerException] with root cause
  java.lang.NullPointerException
      at org.apache.jsp.login_jsp._jspInit(login_jsp.java:31)
      at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
      at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
      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)
  </code></pre>
  
  <p>I don't know if it is normal but it remainsstuck on "INFORMAZIONI: Starting ProtocolHandler ["http-bio-8080"]" </p>
  
  <p>Then I go to the localhost and the exception disappears. </p>
  
  <p>Under WEB-INF/lib I didn't have any jar file. 
  This is my build path</p>
  
  <p><a href="https://i.stack.imgur.com/3lI2W.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3lI2W.png" alt="enter image description here"></a></p>