У нас есть 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
Как я видел примеры в Google, это типичный пример настройки активации MDB и WAS.
У нас есть проблема, так как все имена JNDI, показанные здесь, жестко закодированы в аннотациях кода Java, а также в файле ibm-ejb-jar-bnd.xml.
Итак, есть ли способ вывести эти имена JNDI за пределы проекта EJB, чтобы мы могли создать один проект для всех клиентов, и клиенты могут свободно иметь свои стандартные имена JNDI.
В противном случае нам придется создавать разные .ear для каждого клиента, а это не идеально.
Спасибо заранее люди. Любые идеи приветствуются.