我正在使用AwsFlowFramework的樣本,特別是helloworld和fileprocessing。我跟着所有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.isReady
爲true
,但由於某種原因,這從來都不是真的,客戶端不會被調用並且工作流將永遠等待。 - 嘗試不同endpoints。
@seanbreeden我很欣賞你試圖改進問題,但請不要改變問題本身的含義。特別是'printHello'返回'Promise'這是正確的。問題是試圖按照我在問題中指定的方式調用'承諾Promise',不管'Promise'的類型是'Void','String'還是其他任何東西。 –
juanmirocks
我的不好。我不確定你是否知道,但Void之前根本沒有出現。這是空白的,因爲它是像一個HTML標記呈現它。 – seanbreeden
我沒看到。謝謝。 – juanmirocks