2

EJB のメッセージ駆動型 Bean で単一の宛先タイプしか設定できないのはなぜですか?

@MessageDriven(activationConfig = { 
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), 
@ActivationConfigProperty(propertyName = "destination", propertyValue = "FileProcess"), 
@ActivationConfigProperty(propertyName = "transactionTimeout", propertyValue = "3600"), 
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "100") })
@TransactionManagement(value = TransactionManagementType.CONTAINER)
public class FileMDB implements MessageListener {

  //.....
}

1 つの MSD に複数の宛先タイプを追加したいのですが、MDB クラスに複数のキュー名または宛先タイプを追加できますか?

4

1 に答える 1

0

簡単に言えば、Sun (および JSR 専門家グループ) がそのように設計したためです。

より長い答え: 同じ形式のメッセージをすべて含む多くのキューを処理する必要があると思いますが、メッセージがどこから来たかはサービスにとって重要ではありません。あなたはできる:

  1. インターフェイスを実装する基本クラスを実装MessageListenerし、必要な回数だけ継承し、そのたびに異なる@ActivationConfigProperty注釈を適用します。
  2. (より良いオプション) メッセージング システムで許可されている場合は、追加のキューを作成し、アプリケーションにとって重要なすべてのキューを構成して、そのキューにメッセージを渡します。その後、ボイラープレート コードを作成する必要なく、現在の MDB 構成を維持できます。
于 2013-07-04T14:17:43.360 に答える