gpt4 book ai didi

java - ScheduledThreadPoolExecutor 线程中的 GWT 环境错误

转载 作者:行者123 更新时间:2023-12-01 15:21:14 24 4
gpt4 key购买 nike

我正在尝试编写 GWT 应用程序的服务器端组件,该组件应该每 3 分钟提取一个 XML 文件,并在解析 XML 后保持哈希表最新。

经过一番研究,我使用 ScheduledThreadPoolExecutor 设置线程

stationParser = new TFLStationsParserThread(bikeStations);
scheduler.scheduleWithFixedDelay(stationParser, 2, 180, SECONDS);

TFLStationsParserThread 有一个最小的构造函数,以及这个 run() 方法

public void run() {
System.out.println("TFLStationsParserThread run()");
stationParser.refreshStationData(stations);
}

stationParser最终通过以下命令获取数据

HTTPResponse response = URLFetchServiceFactory.getURLFetchService().fetch(request);

这是我的问题:当从 ScheduledThreadPoolExecutor 中运行此 .fetch() 时,我收到以下错误

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:37)
at couk.mtaylor.bikes.server.TFLStationsParser.refreshStationData(TFLStationsParser.java:66)
at couk.mtaylor.bikes.server.TFLStationsParserThread.run(TFLStationsParserThread.java:35)
...

如果我注释掉 scheduleWithFixedDelay 调度程序并直接调用 refreshStationData ,那么我就不会遇到这样的问题。

这让我相信该线程缺少一些必需的 GWT 库,但这超出了我的知识范围,而且我在网上找不到任何有帮助的解决方案。

为什么我会从计划线程内收到这些 GWT 错误消息,但在直接调用该方法时却不会?

最佳答案

我无法证实这一点,但我认为这可能是 GAE 告诉我这不是如何在 GAE 中处理线程的方式。如果我从构建路径中删除 GAE 并停止使用 .fetch(),则代码可以正常工作。

现在我放弃了为 GAE 编写代码的想法,同时我更加习惯了 Java。

关于java - ScheduledThreadPoolExecutor 线程中的 GWT 环境错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com