2

Oracle AD キューに接続する MDB (JBoss AS 6) を作成しようとしています。

次の例が機能するようになりました。

@MessageDriven(name = "TestMdb", activationConfig = {
    @ActivationConfigProperty(propertyName="destinationType", propertyValue = "javax.jms.Queue"),
    @ActivationConfigProperty(propertyName="connectionFactoryProperties", propertyValue="jdbc_connect_string=jdbc:oracle:thin:XXXXX@XXX:1521:XXX,host=XXXX,user=XXXX,password=XXXX,port=XXXX,sid=XXXX,driver=XXXX"),
    @ActivationConfigProperty(propertyName="destinationProperties", propertyValue="owner=XXXXX,name=jms_text_que"),
    @ActivationConfigProperty(propertyName="userName", propertyValue="XXXX"),
    @ActivationConfigProperty(propertyName="password", propertyValue="XXXX"),
    @ActivationConfigProperty(propertyName="ConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsConnectionFactory"),
    @ActivationConfigProperty(propertyName="QueueConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsQueueConnectionFactory")
    })
@ResourceAdapter("XXXXXX-ear.ear#genericjmsra.rar")
@TransactionManagement(TransactionManagementType.BEAN)
public class TestMdb  implements MessageListener {

    public void onMessage(Message message) {
    ...
    }
}

問題は、接続プロパティをコードで直接指定する必要があることです (DB ホスト、ユーザー名、パスワードを含む)。jndiルックアップからデータソースを使用する方法を知っている人はいますか?

ありがとう

4

1 に答える 1

1

MDB アノテーション構成の教科書的な実装が、環境およびセキュリティ固有の値のハードコーディングを指示していることは腹立たしいです。Java での注釈処理は、最終的な String MyConfig = System.getProperty(....)のような非定数値を忍び込まないようにすることについても非常に巧妙です。

いずれにせよ、MDB 構成の一部またはすべてを、もう少し使いやすい XML 配置記述子に構成することができます (ただし、ビルドと配置は少し複雑になります)。JBoss XML デプロイメント記述子は、システム プロパティを参照する${}トークンに割り当てられた値を持つことができるため、構成の観点から管理しやすくなります。

于 2011-07-03T19:12:59.217 に答える