1

AwsFlowFramework のサンプル、特にhelloworldfileprocessingを使用しています。ここに記載されているすべてのセットアップ手順に従いました。すべてのクライアント クラスは、アスペクト ウィーバーで正常に作成されます。すべてコンパイルして実行します。

しかし、非同期メソッド内で Promise を実行しようとしてもうまく.getいきません。永遠に待機し、結果は返されません。

私は何を間違っていますか?

.get特に、helloworld サンプルには非同期メソッドがなく、Promise での実行も試行されません。したがって、完全にコピーすると機能し、アクティビティ クライアントで「hello world」メッセージが出力されていることがわかります。getしかし、 Promise<Void>返されたで呼び出すスタブ非同期メソッドを作成するprintHelloと、アクティビティのクライアントが呼び出されないため、ワークフローは永久に待機します。実際、返された promise を変数に設定すると、この例は機能します。.get問題は、Promiseを呼び出そうとした場合にのみ発生します。非同期メソッドを持つファイル処理の例は機能しません。

AWS コンソールに登録されているワークフローとアクティビティ タイプが表示されます。

Java SDK 1.4.1 と Eclipse Juno を使用しています。


失敗した試行のリスト:

  • アスペクトウィーバーが別のことをする場合に備えて、Eclipse Indigoで試してみました。
  • この質問で提案されているように、すべての非同期メソッドをプライベートにしました。
  • .isReady()Promise を呼び出すと、「helloworld」メッセージが表示された後に呼び出す場合でも、これは常に行わfalseれます (その間にスリープすることで確認されます)。Promise.getこれにより、呼び出し元がブロックされるまでブロックされると思いますPromise.isReadytrue、どういうわけかこれが真実ではないため、クライアントは呼び出されず、ワークフローは永遠に待機します。
  • 別のエンドポイントを試しました。
4

1 に答える 1

0

とても悪い。ファイルの構成に誤りがあったaop.xmlため、リモート呼び出しのロード アスペクト ウィービングが正しくありませんでした。

于 2013-04-20T14:15:51.900 に答える