1

POJO プロデュースの場合、InOut がデフォルトであることが Camel ドキュメントに記載されています。ただし、ProducerTemplate の sendBody() を使用している場合、以下の例のように @InOnly も設定する必要はありますか。

public class MyBean {

@Produce(uri = "direct:hello")
private ProducerTemplate producerTemplate;

@InOnly
void someInOnlyMethod()
{
...
producerTemplate.sendBody("mystr");
...
}
}

同様に、次の例で、 direct:hello が @InOnly アノテーションなしで構成された上記の MyBean オブジェクトからメッセージを取得する場合、setExchangePattern 要素が必要ですか?

 <route>
 <from uri="direct:hello"/>
 <setExchangePattern pattern="InOnly"/>
 <to uri="mock:result"/>      
 </route>
4

1 に答える 1

2

1) いいえ、プロデューサー テンプレートを使用すると、テンプレートで使用する方法に応じて MEP が設定されます。たとえば、送信メソッドはすべて InOnly で、要求メソッドはすべて InOut です。一部のメソッドには、MEP を指定できるパターン パラメーターがあります。

2) いいえ、MEP を設定/変更する必要はありません。ただし、InOnly または InOut の両方をサポートする (そして動作が異なる) エンドポイントにメッセージを送信する状況では、必要に応じて MEP を明示的に設定することをお勧めします。

詳細については、これらの EIP についてを参照してください

たとえば、JMS エンドポイントは InOnly (キューにのみ送信) または InOut (JMS を介して要求/応答を行う) などを実行できます。

于 2013-03-31T06:50:18.287 に答える