参考:客观化版本: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时为什么会出错?这是按照文件。
我做错了什么?