【问题标题】:AWS Flow Framework, .get on Promises waits foreverAWS Flow Framework,.get on Promises 永远等待
【发布时间】:2013-04-08 20:45:03
【问题描述】:

我正在使用 AwsFlowFramework 的示例,特别是 helloworldfileprocessing。我关注了所有the setup instructions given here。使用方面编织器成功创建了所有客户端类。它全部编译并运行。

但是尝试在异步方法中对 Promise 执行 .get 是行不通的。它永远等待,永远不会返回结果。

我做错了什么?

特别是 helloworld 示例没有任何异步方法,也没有尝试在 Promise 上执行 .get。因此,当完全复制时它确实有效,我可以在活动客户端中看到打印的“hello world”消息。然而,如果我创建一个存根异步方法以在Promise<Void> 返回的Promise<Void> 上调用printHello,则永远不会调用活动的客户端,因此工作流将永远等待。实际上,如果我将返回的承诺设置为变量,则该示例有效。只有当我尝试在 Promise 上调用 .get 时才会出现问题。具有异步方法的文件处理示例不起作用。

我在我的 aws 控制台中看到正在注册的工作流和活动类型。

我正在使用 Java SDK 1.4.1 和 Eclipse Juno。


我的失败尝试列表:

  • 使用 Eclipse Indigo 进行了尝试,以防切面编织器执行不同的操作。
  • 按照this question 的建议将所有异步方法设为私有。
  • 如果我在 Promise 上调用 .isReady(),即使我在看到打印的“helloworld”消息后调用它(通过在两者之间进行睡眠来确定),它也始终是 false。这让我认为 Promise.get 会阻止调用者,直到 Promise.isReadytrue 但由于某种原因这永远不会正确,因此不会调用客户端并且工作流会永远等待。
  • 尝试了不同的endpoints

【问题讨论】:

  • @seanbreeden 感谢您尝试改进问题,但请不要更改问题本身的含义。特别是,printHello 返回Promise<Void>,这是正确的。问题是尝试按照我在问题中指定的方式调用get on the Promise,无论Promise 的类型是VoidString 还是其他任何类型。
  • 我的错。我不确定你是否知道,但 Void 之前根本没有出现。它是空白的,因为 SO 将其渲染为 html 标记。
  • 我没看到。那就谢谢了。

标签: asynchronous amazon-web-services promise


【解决方案1】:

我很糟糕。我在 aop.xml 文件中配置错误,因此远程调用的负载 aspectj 编织不正确。

【讨论】:

  • 什么是错误配置?
  • 抱歉,我再也找不到这个了。你应该好好学习 AWS 的教程。
猜你喜欢
  • 2013-11-24
  • 2012-02-24
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
相关资源
最近更新 更多