Как настроить Java Message Driven Beans и спецификацию активации Websphere без жестко заданных имен JNDI?

У нас есть MDB, прослушивающая данные чтения очереди и отправляющая данные в другую очередь.

@MessageDriven(
        activationConfig = { @ActivationConfigProperty(
                propertyName = "destinationType", propertyValue = "javax.jms.Queue"
        ) }, 
        mappedName = "jms/dataQ")
public class DataMDB implements MessageListener {

@Resource(name="jms/dataQueueConnectionFactory")
private ConnectionFactory connectionfactory;

@Resource(name="jms/dataDestinationQ")
private Destination destination;

...
}

и XML (ibm-ejb-jar-bnd.xml) с конфигурацией компонента

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://websphere.ibm.com/xml/ns/javaee"
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee   http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
    version="1.0">

<message-driven name="DataMDB">
        <jca-adapter activation-spec-binding-name="eis/dataListenerMDB"
            destination-binding-name="jms/dataQ" />
        <resource-ref name="jms/dataQueueConnectionFactory"
            binding-name="jms/dataQueueConnectionFactory" />
        <resource-env-ref name="jms/dataDestinationQ"
            binding-name="jms/dataDestinationQ" />
    </message-driven>

</ejb-jar-bnd>

и Спецификация активации для этой MDB в WebSphere

Спецификация активации WAS

Как я видел примеры в Google, это типичный пример настройки активации MDB и WAS.

У нас есть проблема, так как все имена JNDI, показанные здесь, жестко закодированы в аннотациях кода Java, а также в файле ibm-ejb-jar-bnd.xml.

Итак, есть ли способ вывести эти имена JNDI за пределы проекта EJB, чтобы мы могли создать один проект для всех клиентов, и клиенты могут свободно иметь свои стандартные имена JNDI.

В противном случае нам придется создавать разные .ear для каждого клиента, а это не идеально.

Спасибо заранее люди. Любые идеи приветствуются.


person naamadheya    schedule 06.08.2014    source источник


Ответы (1)


Все значения, определенные в ibm-ejb-jar-bnd.xml, сопоставляют ссылки с фактическими именами JNDI. Это можно переопределить для каждого из ваших клиентов во время установки приложения (отображение ссылок на шаги имен JNDI в консоли администратора), после установки приложения или во время установки с помощью сценариев.

Файл привязки (ibm-ejb-jar-bnd.xml) предоставляет только «имена по умолчанию», если вы не хотите изменять их во время установки.

person Gas    schedule 06.08.2014
comment
Извините, что поздно отвечаю, но с помощью скриптов это сработало отлично. Спасибо. - person naamadheya; 28.08.2014