2016-11-21 130 views
-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() 
+1

您的类'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

+1

如果你使用过@ @ Override,你也会得到更多的帮助。 – chrylis

回答

0

我有你想要做的非常有限的知识,你能解释一下多一点就会有人能够更好地帮助你。

您的类“conexaoHibernateFilter”实现了类“Filter”,其中包含一些抽象方法。如果你想实现一个过滤器,你需要实现它描述的方法,或者你没有一个完整的过滤器。实现错误消息描述的方法。您已经编写的当前方法不会受到影响。

确保您正在实施正确的课程。

相关问题