-1
即使我的方法我需要实现继承,但为什么?试图实现一个Filter类,但得到这个错误:类的类型必须实现继承的抽象方法
我只想得到会议,没有更多。
如果我实现了继承的方法,我会创建什么方法?
代码:
import javax.servlet.*;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import org.hibernate.Filter;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import br.com.javaparaweb.financeiro.util.HibernateUtil;
import javassist.convert.TransformWriteField;
@WebFilter(urlPatterns = {"*.jsf"})
public class conexaoHibernateFilter implements Filter {
private SessionFactory sf;
public void init(FilterConfig config) throws ServletException{
this.sf = HibernateUtil.getSessionFactory();
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException{
Session currentSession = this.sf.getCurrentSession();
Transaction transaction = null;
try{
transaction = currentSession.beginTransaction();
chain.doFilter(servletRequest, servletResponse);
transaction.commit();
if(currentSession.isOpen()){
currentSession.close();
}
}catch(Throwable ex){
try{
if(transaction!=null){
transaction.rollback();
}
}catch(Throwable tb){
tb.printStackTrace();
}
}
}
public void destroy(){
}
}
错误:
Multiple markers at this line
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.getFilterDefinition()
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.setParameterList(String,
Object[])
- Breakpoint:conexaoHibernateFilter
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.setParameter(String, Object)
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.validate()
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.setParameterList(String,
Collection)
- The type conexaoHibernateFilter must implement the inherited abstract method Filter.getName()
您的类'implements' ['org.hibernate.Filter'](http://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/Filter.html),而不是['javax。 servlet.Filter'](https://tomcat.apache.org/tomcat-8.0-doc/servletapi/javax/servlet/Filter.html)。检查你的'import'语句。 – Andreas
如果你使用过@ @ Override,你也会得到更多的帮助。 – chrylis