2017-08-22 11 views
0

私はEhcacheでシンプルなWebページをキャッシュしようとしています。別のSO投稿の助けを借りて、Ehcache 2のコードに基づいて独自のフィルタを実装する必要があることを発見しました。私がfilterを見ると、私はそれを理解していません。キャッシュを呼び出して値を返すのはどこですか?ここに私の実装では、(恐らく間違っている)である:Ehcache 3の単純なWebページのキャッシュ用のフィルタは、どこでキャッシュを呼び出しますか?

package com.sentiment360.pulse.cache; 

import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.xml.bind.Element; 
import org.ehcache.Cache; 
import org.ehcache.CacheManager; 
import org.ehcache.config.Configuration; 
import static org.ehcache.config.builders.CacheManagerBuilder.newCacheManager; 
import org.ehcache.core.Ehcache; 
import org.ehcache.event.CacheEvent; 
import org.ehcache.event.CacheEventListener; 
import org.ehcache.xml.XmlConfiguration; 

import javax.servlet.http.HttpServletRequest; 

public class SimplePageCachingFilter implements CachingFilter { 
    public static final String DEFAULT_CACHE_NAME = "SimplePageCachingFilter"; 
    private Logger LOG = Logger.getLogger(this.getClass().getName()); 
    private String cacheName="basicCache"; 

    protected String getCacheName() { 
     if (cacheName != null && cacheName.length() > 0) { 
       LOG.log(Level.INFO,"Using configured cacheName of {}.", cacheName); 
       return cacheName; 
      } else { 
       LOG.log(Level.INFO,"No cacheName configured. Using default of {}.", DEFAULT_CACHE_NAME); 
       return DEFAULT_CACHE_NAME; 
      } 
    } 

    protected CacheManager getCacheManager() { 
     return CacheManager.getInstance(); 
    } 

    protected String calculateKey(HttpServletRequest httpRequest) { 
     StringBuffer stringBuffer = new StringBuffer(); 
     stringBuffer.append(httpRequest.getMethod()).append(httpRequest.getRequestURI()).append(httpRequest.getQueryString()); 
     String key = stringBuffer.toString(); 
     return key; 
    } 
} 

答えて

1

super classで参照してください。 しかし、あなたはimplements CachingFilterですか?そのインターフェイスはどこですか?以前のEhcacheのSimplePageCachingFilterを「コピー」しようとしていたようです。抽象的なスーパークラスを移植する必要があります(また、これらが完全にはっきりしない場合は、javax.servlet.Filterを少し読んでください...)

ここで、開発チームに約Ehcache Dev Google groupをpingすることもできますこの。彼らはポインタを提供し、実装を助けることができるはずです。将来のプルリクエストのための良いアイデアのように見えます! :)

関連する問題