Начиная с запущенного EAR в Weblogic 12 Мне нужно, чтобы это приложение также работало с Wildfly 12.
У нас есть несколько очередей JMS, которые мы добавляем в Weblogic следующим образом:
@Resource(lookup = "jms/Queues/MYQUEUE")
private Queue destination;
@Resource(lookup = "jms/QueueConnectionFactories/MYQUEUECF")
private QueueConnectionFactory connectionFactory;
С Wildfly я определил очередь в standalone-full.xml
<jms-queue name="MYQUEUE" entries="jms/Queues/MYQUEUE" durable="true"/>
<connection-factory name="MYQUEUECF" entries="jms/QueueConnectionFactories/MYQUEUECF" connectors="in-vm"/>
Но инъекция завершается неудачно при запуске сервера.
service jboss.naming.context.java.comp.XXX.ejb.JMSMessageProducer.env.jms.Queues.MYQUEUE (missing) dependents: [service jboss.naming.context.java.comp.XXX.ejb.JMSMessageProducer.env."com.xxx.webservices.components.communication.ejb.JMSMessageProducerBean".destination] [[...]
Чтобы это исправить, мне нужно использовать
@Resource(lookup = "java:/jms/Queues/MYQUEUE")
private Queue destination;
Без префикса "java: /" внедрение не будет работать.
К сожалению, это не работает с Weblogic (ведущей / продуктивной системой).
Поскольку я не могу изменить конфигурацию weblogic, я должен сделать свою конфигурацию Wildfly совместимой с ней или изменить код впрыска, чтобы он работал на обоих серверах приложений.
Зачем Wildfly нужен этот префикс в аннотации @Resource для правильной инъекции?
Есть ли способ изменить его конфигурацию, чтобы код работал без префикса "java: /"?
Заранее спасибо; -)
Mark.
PS: Когда я удаляю аннотации @Resource и выполняю поиск по контексту, это происходит без «java: /» - странно; -)