0

尝试通过在 App Engine 环境中执行的 HEAD 请求检查 BigQuery 中是否存在数据集时,我们遇到了奇怪的错误。请看下面的代码。

bigquery.datasets().get(projectNumber, datasetId).executeUsingHead();

如果在本地开发服务器上运行该代码可以成功运行,但是,当部署在 Google 基础架构上时,我们会收到 IOException。

...
Caused by: java.io.IOException: 
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:148)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:43)
at com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:79)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:980)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:399)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUsingHead(AbstractGoogleClientRequest.java:382)
at com.google.api.services.bigquery.Bigquery$Datasets$Get.executeUsingHead(Bigquery.java:322)
...

任何想法,将不胜感激。

4

1 回答 1

0

您是否有理由不使用 execute() 而不是 executeUsingHead()?datasets.get() 操作仅返回单个数据集对象,该对象通常非常小。

于 2013-08-06T23:56:11.087 回答