如果我使用ObjectifyFilter,我会收到错误

时间:2014-11-30 06:53:21

标签: google-app-engine gwt google-cloud-datastore objectify

参考:客观化版本:5.1.2,GWT:2.5.1,GAE:1.9.15

根据Objectify文档,如果我在web.xml中添加ObjectifyFilter,我会收到以下错误:

  

java.lang.NoSuchMethodError:   java.util.concurrent.ConcurrentHashMap.keySet()Ljava / util的/并行/ ConcurrentHashMap的$ KeySetView;     在   com.googlecode.objectify.cache.PendingFutures.completeAllPendingFutures(PendingFutures.java:54)     在   com.googlecode.objectify.ObjectifyService $ 2.close(ObjectifyService.java:120)     在   com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:49)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)     在   com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)     在   com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)     在   org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)     在   org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)     在   org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)     在   org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)     在   org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)     在   org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)     在   com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)     在   org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)     在   com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContainerService.java:491)     在   org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)     在org.mortbay.jetty.Server.handle(Server.java:326)处   org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)     在   org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)     在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)at at   org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)at at   org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)at at   org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)     在   org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)

如果我不在web.xml中使用ObjectifyFilter,我会收到以下错误:

  

java.lang.IllegalStateException:你还没有开始Objectify   上下文。你可能错过了ObjectifyFilter。如果你不是   在http请求的上下文中运行,请参阅   ObjectifyService.run()方法。

我通过在RemoteServiceServlet中执行以下操作使其工作。

public void init()
{
    session = ObjectifyService.begin();
}

public void destroy()
{
    session.close();
}

我的问题是,

使用ObjectifyFilter时为什么会出错?这是按照文件。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

这是如何构建5.1.2的问题。这已被提出here

目前,您可以使用5.1.1,或等待固定版本。

相关问题