Tomcat 7 でのフィルタの実装に問題がありました。ウェルカム ページがありますindex.jsp
。そして、フィルターなしで問題なく動作しました。しかし、小さなフィルターを追加すると、404-Not Found
エラーが発生します。
次のように、(/WEB-INF/classes/filt/Background.java に) フィルター クラスがあります。
package filt;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.*;
import java.util.*;
import java.net.*;
public class Background implements Filter {
private FilterConfig filterConfig;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
try
{
FileWriter fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write("Hello Java");
out.close();
}
catch(Exception e)
{
System.out.println(e);
}
filterChain.doFilter(request, response);
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
public void destroy() {}
}
そして私の web.xml :
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee">
<application>insights</application>
<version>1</version>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>Backgd</filter-name>
<filter-class>filt.Background</filter-class>
</filter>
<filter-mapping>
<filter-name>Backgd</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
</web-app>
ログからのエラー:
SEVERE: Exception starting filter Backgd
java.lang.ClassNotFoundException: filt.Background
今でも web.xml のフィルター部分を削除するとうまくいきます。問題はフィルターにあります。
エラーの原因は何ですか? フィルタの実装に間違いはありませんか?