首页 > 解决方案 > GAE 错误:API 请求 datastore_v3.Get() 发生错误

问题描述

我的 App Engine 项目有 4 个服务。默认服务有时会在所有对 jsp 或 servlet 的 HTTP 请求上开始抛出此运行时错误。每天我的服务会下降近 15-20 分钟,每天 2 或 3 次。我在这个项目上的其他服务运行良好。

我将 Google Cloud Datastore 与 Objectify 5 和 Guava 18 库一起使用。

这是我在错误中得到的堆栈。

com.google.apphosting.api.ApiProxy$UnknownException: An error occurred for the API request datastore_v3.Get().
at com.google.apphosting.utils.runtime.ApiProxyUtils.statusException (ApiProxyUtils.java:209)
at com.google.apphosting.utils.runtime.ApiProxyUtils.getRpcError (ApiProxyUtils.java:130)
at com.google.apphosting.runtime.ApiProxyImpl$AsyncApiFuture.setRpcError (ApiProxyImpl.java:636)
at com.google.apphosting.runtime.ApiProxyImpl$AsyncApiFuture.failure (ApiProxyImpl.java:622)
at com.google.apphosting.runtime.http.HttpApiHostClient.communicationFailure (HttpApiHostClient.java:203)
at com.google.apphosting.runtime.http.JettyHttpApiHostClient$Listener.onComplete (JettyHttpApiHostClient.java:167)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete (ResponseNotifier.java:193)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete (ResponseNotifier.java:185)
at org.eclipse.jetty.client.HttpExchange.notifyFailureComplete (HttpExchange.java:269)
at org.eclipse.jetty.client.HttpExchange.abort (HttpExchange.java:240)
at org.eclipse.jetty.client.HttpConversation.abort (HttpConversation.java:141)
at org.eclipse.jetty.client.HttpRequest.abort (HttpRequest.java:735)
at org.eclipse.jetty.client.HttpDestination.abort (HttpDestination.java:271)
at org.eclipse.jetty.client.PoolingHttpDestination.failed (PoolingHttpDestination.java:81)
at org.eclipse.jetty.client.DuplexConnectionPool$1.failed (DuplexConnectionPool.java:159)
at org.eclipse.jetty.util.Promise$Wrapper.failed (Promise.java:84)
at org.eclipse.jetty.client.HttpClient$1$1.failed (HttpClient.java:588)
at org.eclipse.jetty.client.AbstractHttpClientTransport.connectFailed (AbstractHttpClientTransport.java:152)
at org.eclipse.jetty.client.AbstractHttpClientTransport.connect (AbstractHttpClientTransport.java:141)
at org.eclipse.jetty.client.HttpClient$1.connect (HttpClient.java:593)
at org.eclipse.jetty.client.HttpClient$1.succeeded (HttpClient.java:570)
at org.eclipse.jetty.client.HttpClient$1.succeeded (HttpClient.java:563)
at org.eclipse.jetty.util.SocketAddressResolver$Async.lambda$resolve$1 (SocketAddressResolver.java:181)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:589)
at java.lang.Thread.run (Thread.java:748)

Caused by: java.nio.channels.ClosedSelectorException
at sun.nio.ch.SelectorImpl.keys (SelectorImpl.java:68)
at org.eclipse.jetty.io.ManagedSelector.size (ManagedSelector.java:104)
at org.eclipse.jetty.io.SelectorManager.chooseSelector (SelectorManager.java:190)
at org.eclipse.jetty.io.SelectorManager.connect (SelectorManager.java:207)
at org.eclipse.jetty.client.AbstractHttpClientTransport.connect (AbstractHttpClientTransport.java:118)

标签: javagoogle-app-enginegoogle-cloud-platformgoogle-cloud-datastore

解决方案


推荐阅读