内部にグルーヴィーなコンポーネントがあります。成功するまで、ブロックはjava.lang.IllegalArgumentExceptionをスローしています。私は今、理想的には真でなければならず、再試行が唯一、この特定の例外のために起こるべき式#[exception.causedBy(java.lang.IllegalArgumentExceptionが)]同期が成功しない失敗式が機能しない
を宣言していますが、それらはすべての例外のために起こっているまで、成功失敗式で また、私が手作業で失敗表現を '#[false]'でFalseに設定したり、変数を設定してその値を変数自体と比較したりしても、それは動作しません。
<until-successful maxRetries="5" millisBetweenRetries="600" failureExpression="[exception.causedBy(java.net.SocketTimeoutException)]" doc:name="Until Successful" synchronous="true">
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[throw new IllegalArgumentException()]]></scripting:script>
</scripting:component>
</until-successful>
特定の例外に対して再試行し、他の例外に対しては、再試行せずに例外をスローする必要があります。
おかげで);
はそれがお役に立てば幸いです。誤解をおかけして申し訳ありません...私はそれが真実か偽であるとしても、すべての例外を再試行していると言います。 だから私は特定の例外を処理して、Until-Successfulで再試行したいとします。Rest再試行せずにCatchブロックに直接スローしたいです。 – srbhvatsa
この場合、スクリプトブロックを別のフローに置き、成功するまでスコープに ' 'を使用することをお勧めします。このフローから、前者に特化した例外戦略を追加し、内部に捕捉される例外を除くすべてを指定することができます。したがって、成功するまでスコープはそれらのためにもう再試行しません。 –