当前位置: 首页 > 面试题库 >

尝试在Java的Google App Engine中实现异步HTTP时遇到奇怪的异常

司空鸿禧
2023-03-14
问题内容

我正在尝试在Java中实现异步HTTP。这是代码的重要部分:

for (String urlString : urls) 
{ 
    // TODO: try and get rid of these two heap allocations 
    url = new URL(urlString); 
    request = new HTTPRequest(url); 
    request.addHeader(userAgentHeader); 
    request.addHeader(authorizationHeader); 
    request.addHeader(acceptEncodingHeader); 
    request.addHeader(acceptCharsetHeader); 
    responses.add(URLFetchServiceFactory.getURLFetchService().fetchAsync(reques t)); 
    apiCallsMade++; 
} 
for (Future<HTTPResponse> futureResponse : responses) 
{ 
    parseResponse(new String(futureResponse.get().getContent())); 
}

我不断收到此错误:

com.google.apphosting.api.ApiProxy $ CallNotFoundException:未找到API包“
urlfetch”或调用“ Fetch()”。

我到处寻找类路径中缺少的jar,但是没有发现任何jar。您知道该代码在哪个jar中吗?我搜索了该错误,还搜索了该组,但未找到任何内容。谢谢大卫


问题答案:

使用Google Appengine,您不能在本地Java应用程序中使用这些api。仅当您使用google appengine
sdk开发和部署网络应用程序时,此方法才有效。仅设计这种方式。

当您使用此api时,它将利用http客户端,并且在应用引擎环境下,它将利用google基础设施。如果您仍要对为Google
Appengine设计的应用程序进行单元测试,则可以考虑使用LocalURLServiceFactory。



 类似资料:
  • 问题内容: 基本上,该网站可以正常运行12多个小时,然后突然停止工作。我将开始在以前运行良好的LINQ查询中引发奇怪的异常。 我在这篇文章的底部提供了堆栈跟踪。 根据在类似SO帖子上找到的建议,我通过直接从Server Explorer中的DB拖动表来删除并重新制作了DBML。比较Git中的新旧内容,我发现了一些不同的字段: 在dbml中将varchar(255)的一个实例设置为nchar(10)

  • 我有以下异步代码示例: 和两个测试: 下面是运行separatley和后chrome控制台中的结果: 问题:为什么我们在(test2)中使用函数,得到的结果与我们直接复制粘贴到(test1)中的结果不同? (上面的例子很抽象,但是我发现这种行为调用ajax请求(而不是和)在我的应用程序中非常重要(请求必须在请求之前...))

  • 我试图在返回几个元素的驾驶舱函数中使用use效应,但我得到了这个奇怪的错误,说“第6行: React Hook”use效应在函数“驾驶舱”中被称为“驾驶舱”,它既不是React函数组件,也不是自定义的React Hook函数反应-钩子/钩子规则”。 但我的座舱组件肯定是一个功能?

  • 当我在没有@EnableGlobalMethodSecurity注释的情况下运行我的应用程序时,它工作得很好。但是,我想添加对@secreted注释的支持,所以我想添加它。当我这样做时(如图所示),我开始立即在测试中获得这些异常。

  • 问题内容: 我在做什么 : 我预期的输出: 平均=(10 + 20 + 30)/ 5 = 12 MYSQL的输出: 平均值=(10 + 20 + 30)/ 3 = 20 理想情况下,我想要的是MYSQL应该得到5行的总和并除以5,但是它只能除以3(非NULL行) 为什么会发生这种情况,我该怎么做才能获得正确的AVG,即60/5?PS:我不能使标记字段NOT NULL,在我的数据库设计中,标记字段允

  • 我有一个基于Spring的webapp,我的问题是在代码更改后,我开始出现延迟加载异常。下面我详细描述了这种情况: 在开始的时候 我有一个账户和文字实体。一个帐户可以有多个单词,一个单词可以分配给多个帐户。 一个ccount.class 单词班 除了每个账户只能有一个“WordForToday”,它由账户中映射的单词实体表示。类如下: 一切都正常工作。特别是我有一个@Schedilly方法,每天调