Ошибка при создании кэша в Google Apps Engine. net.sf.jsr107cache.CacheException - PullRequest
0 голосов
/ 07 июня 2011

Я только начал играть с MemCache в Google Apps Engine, и каждый раз, когда я создаю CacheFactory, я получаю эту ошибку:

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 Apps Engine "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();
    }

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Это должно быть исправлено в 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());
    }
  }
}
0 голосов
/ 07 июня 2011

В проектах Eclipse, созданных с помощью плагина App Engine 1.5.0, в каталог war/WEB-INF/lib добавлен сломанный jsr107cache-1.1.jar.

Обновление SDK и плагина не изменяет ваши проекты, вам необходимоисправь это сам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...