我们目前正在使用捆绑服务(https://cloud.google.com/blog/products/serverless/support-for-app-engine-services-in-second-generation-runtimes)将应用程序引擎从Java8迁移到Java11。
我们做到了,应用程序似乎正在按预期运行- BE、FE和Datastore似乎都在我们的阶段性GCP项目中工作。
但是,我们的日志中每10秒就会出现以下错误:
Failed to query GCE metadata service然后
java.io.IOException: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:70)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.fetchResponse(URLFetchServiceStreamHandler.java:609)
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getInputStream(URLFetchServiceStreamHandler.java:488)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.readResponse(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.queryMetadataAttribute(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.getProjectId(Unknown Source)
at com.google.devtools.cdbg.debuglets.java.GcpHubClient.registerDebuggee(Unknown Source)
Caused by: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call urlfetch.Fetch in a thread that is neither the original request thread nor a thread created by ThreadManager
at com.google.apphosting.api.ApiProxy$CallNotFoundException.foreignThread(ApiProxy.java:844)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:117)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:54)
... 6 more编辑:云调试器说“调试器找不到应用程序的调试目标”。但是,仍然依赖于Java 8的版本可以工作,那么迁移还缺少哪些额外的步骤来正确设置调试器呢?当我们使用App标准环境时,默认情况下应该启用该环境(https://cloud.google.com/debugger/docs/setup/java#gae-standard)。
编辑2:看起来这可能是Google的bug:https://github.com/GoogleCloudPlatform/cloud-debug-java/issues/18
发布于 2021-10-22 12:09:57
根据与发出HTTP请求有关的App引擎文档,如果使用URL,它将导致云客户端库请求(其中包括Google )失败。
在使用捆绑服务时,我们仍然使用appengine-web.xml文件。
我们在那里有以下几行:
<url-stream-handler>urlfetch</url-stream-handler>
删除那条线为我们解决了这个问题。
https://stackoverflow.com/questions/69496712
复制相似问题