2016-11-21 27 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」,其中包含一些抽象方法。如果你想實現一個過濾器,你需要實現它描述的方法,或者你沒有一個完整的過濾器。實現錯誤消息描述的方法。您已經編寫的當前方法不會受到影響。

確保您正在實施正確的課程。

相關問題