MDB подключен к Oracle AQ через источник данных

Я пытаюсь создать MDB (JBoss AS 6), который подключается к очереди Oracle AD.

Я получил следующий пример для работы:

@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) {
    ...
    }
}

Проблема в том, что мне нужно указать свойства подключения прямо в коде (включая хост БД, имя пользователя и пароль). Кто-нибудь знает способ использовать источник данных из поиска jndi?

Спасибо


person Andrea Polci    schedule 29.06.2011    source источник


Ответы (1)


Бесит, что реализация конфигурации аннотаций MDB в учебнике диктует жесткое кодирование конкретных значений среды и безопасности. Обработка аннотаций в Java также чертовски умна, чтобы убедиться, что вы не вкрадываете какие-то непостоянные значения, такие как final String MyConfig = System.getProperty(....).

В любом случае, вы можете сконфигурировать часть или всю конфигурацию MDB для дескриптора развертывания XML, который немного более удобен (хотя и немного сложнее в построении и развертывании). Дескрипторы развертывания JBoss XML могут иметь значения, назначенные в токенах ${}, которые ссылаются на системные свойства, поэтому они немного более управляемы с точки зрения конфигурации.

person Nicholas    schedule 03.07.2011
comment
Спасибо. Я надеялся, что есть способ указать имя jndi источника данных вместо URL-адреса jdbc и других свойств. - person Andrea Polci; 04.07.2011