只写了dofilter()可能会出现这个问题
解决方法:
添加public void init()和 public void destroy() 方法。
java.lang.AbstractMethodError 这个异常是抽象方法异常。
原因:
jdk 1.9 之后,可以不写这两个方法,如果用jdk1.8 去跑 jdk 1.9 的代码,容易出现这个问题
package Filter;
import utils.JdbcUtils;
import javax.servlet.*;
import java.io.IOException;
public class TransactionFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try {
filterChain.doFilter(servletRequest,servletResponse);
JdbcUtils.commitAndClose();//提交事务,关闭连接
}catch (Exception e){
JdbcUtils.rollbackAndClose();//回滚事务,关闭连接
e.printStackTrace();
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}