Servlet web.xml filter — Class nicht gefunden Ausnahme

Ich habe ein problem in der Einrichtung des filter -
den filter habe ich definiert web.xml sieht so aus

  <filter>
   <filter-name>Log</filter-name>
   <filter-class>test.log</filter-class> 
 </filter>
 <filter-mapping>
   <filter-name>Log</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

Aber ich erhalte die folgende Fehlermeldung -

SEVERE: Exception starting filter Log
java.lang.ClassNotFoundException: test.log
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:133)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:256)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
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$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Habe ich die Klasse definiert, aber aus irgendeinem Grund bin ich immer der Classnotfoundexcetion. Kann mir jemand helfen?

BEARBEITEN ---

Habe ich ein Paket mit dem Namen test und eine Klasse namens log.

             package test;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;

    //Implements Filter class
     public class log implements Filter  {
         public void  init(FilterConfig config) {

          }
         public void  doFilter(ServletRequest request, 
             ServletResponse response,
             FilterChain chain) 
             throws java.io.IOException, ServletException {

  //Get the IP address of client machine.   
  String ipAddress = request.getRemoteAddr();

  //Log the IP address and current timestamp.
  System.out.println("IP "+ ipAddress + ", Time "
                                   + new Date().toString());

  //Pass request back down the filter chain
  chain.doFilter(request,response);
  }
   public void destroy( ){
      /* Called before the Filter instance is removed 
      from service by the web container*/
  }
 }

Danke,

Sie haben eine Klasse log in einem Paket namens test?
Wird es eingesetzt? Ist es richtig verpackt? FWIW, Sie sollten wahrscheinlich Folgen Java-Namenskonventionen, die state-Klasse sollten die Namen beginnen mit einem Großbuchstaben..
Ist die Klasse im war/WEB-INF/lib?
Oder in Ihrem WEB-INF/classes?
Es könnte auch sein, in WEB-INF/classes/test

InformationsquelleAutor Fox | 2012-07-25

Schreibe einen Kommentar