2013-04-16 32 views
1

我正在使用AwsFlowFramework的樣本,特別是helloworldfileprocessing。我跟着所有the setup instructions given here。所有客戶端類都使用方面編織器成功創建。它全部編譯並運行。AWS Flow Framework,.get on Promises一直等待

但試圖在異步方法中的Promise上做.get不起作用。它永遠等待,結果永遠不會退回。

我在做什麼錯?

特別是helloworld示例沒有任何異步方法,也沒有嘗試在Promise上執行.get。因此,它在完全複製時工作,我可以在活動客戶端看到打印的「hello world」消息。然而,如果我創建一個存根異步方法來調用由printHello返回的Promise<Void>上的get,那麼這些活動的客戶端永遠不會被調用,因此工作流將永遠等待。事實上,如果我將返回的承諾設置爲變量,該示例就可以工作。如果我嘗試在Promise上致電.get,問題纔會出現。具有異步方法的文件處理示例不起作用。

我看到工作流和正在我的aws控制檯中註冊的活動類型。

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


我的不成功嘗試的名單:

  • 以防方面編織做不同的事情與Eclipse靛藍試了一下。
  • 按照this question的建議,使所有異步方法都是私有的。
  • 如果我在Promise上打電話.isReady(),即使打印出「helloworld」消息(通過在中間休息時確定),我仍然會打電話給它,但總是使用false。這導致我認爲Promise.get阻止了調用者,直到Promise.isReadytrue,但由於某種原因,這從來都不是真的,客戶端不會被調用並且工作流將永遠等待。
  • 嘗試不同endpoints
+0

@seanbreeden我很欣賞你試圖改進問題,但請不要改變問題本身的含義。特別是'printHello'返回'Promise '這是正確的。問題是試圖按照我在問題中指定的方式調用'承諾Promise',不管'Promise'的類型是'Void','String'還是其他任何東西。 – juanmirocks

+0

我的不好。我不確定你是否知道,但Void之前根本沒有出現。這是空白的,因爲它是像一個HTML標記呈現它。 – seanbreeden

+0

我沒看到。謝謝。 – juanmirocks

回答

0

我非常糟糕。我在aop.xml文件中有一個配置錯誤,因此編譯遠程調用的負載aspectj不正確。

+0

錯誤配置是什麼? –

+0

對不起,但我找不到了。你應該使用AWS的教程做得很好。 – juanmirocks