2011-06-07 55 views
0

我剛開始在谷歌應用程序引擎與MEMCACHE玩,每次我創建CacheFactory時間我得到這個錯誤:在Google Apps引擎中創建緩存時出錯。 net.sf.jsr107cache.CacheException

net.sf.jsr107cache.CacheException: 
Could not find class: 'com.google.appengine.api.memcache.jsr107cache.GCacheFactory' 
    at net.sf.jsr107cache.CacheManager.getCacheFactory(CacheManager.java:46) 

我使用的應用程序引擎的SDK「1.5.0.1 - 2011-05-16「(這是最新的)。我在當地測試了這個。

有人知道如何解決這個問題?

這是我的代碼片段。

@SuppressWarnings("rawtypes") 
    Map props = new HashMap(); 
    //props.put(GCacheFactory.EXPIRATION_DELTA, 3600); 

    try { 
     CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory(); 
     cache = cacheFactory.createCache(props); 
     if(cache.containsKey("userAgent")) 
     { 
      userAgent = (String)cache.get("userAgent"); 
     }else 
     { 
      cache.put("userAgent", userAgent+" from MEMCache"); 
     } 
    } catch (CacheException e) { 
     e.printStackTrace(); 
    } 

回答

1

這應該固定在App Engine SDK 1.5.0.1

確保您導入:

import net.sf.jsr107cache.CacheException; 
import net.sf.jsr107cache.CacheFactory; 
import net.sf.jsr107cache.CacheManager; 

我沒有與下面的示例代碼中的任何「找不到類」錯誤

package classnotfoundtest; 

import net.sf.jsr107cache.CacheException; 
import net.sf.jsr107cache.CacheFactory; 
import net.sf.jsr107cache.CacheManager; 

import java.io.IOException; 
import javax.servlet.http.*; 

@SuppressWarnings("serial") 
public class ClassnotfoundtestServlet extends HttpServlet { 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
    try { 
     CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory(); 
     resp.setContentType("text/plain"); 
     resp.getWriter().println("Hello, world"); 
    } catch (CacheException e) { 
     e.printStackTrace(resp.getWriter()); 
    } 
    } 
} 
與App Engine插件1.5創建
+0

Yap。我已經讀過1.5.0.1是爲了解決這個問題,但似乎不起作用。我會盡快嘗試你的測試類。 – Rudy 2011-06-07 11:44:17

0

Eclipse項目.0已將損壞的jsr107cache-1.1.jar添加到其war/WEB-INF/lib目錄中。

更新SDK和插件不會改變您的項目,您需要自行解決。

相關問題