Мне нужно сопоставить очередь WebSphere MQ7 (скажем, queA в QMA) с EJB3 MDB.
Я создал MQ Queue Manager и очередь, используя
crtmqm QMA
и запустите, используя strmqm MQA
Затем я написал имя файла QMA.conf
и включил
DEFINE QLOCAL ('queA')
выровняйте его и выполните команду
runmqsc QMA < QMA.conf
тогда я бегу
strmqcsv MQA &
runmqlsr -m QMA -t TCP &
Все эти шаги сделаны как зарегистрированный пользователь mqm.
Тогда я следую
http://community.jboss.org/wiki/JBossEAP5IntegrationwithWebSphereMQ
связать и настроить RAR для jboss 5.1. Когда я запустил тестовое соединение, которое также удалось.
Там я включаю
* channel - SYSTEM.DEF.SVRCONN
* hostName - localhost
* port - 1414
* queueManager - ExampleQM
* transportType - CLIENT
и в моем MDB я включаю
@MessageDriven( name="WMQMDBTest",
activationConfig =
{
@ActivationConfigProperty(propertyName="messagingType",propertyValue="javax.jms.MessageListener"),
@ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queA"),
@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true"),
@ActivationConfigProperty(propertyName = "channel", propertyValue = "SYSTEM.DEF.SVRCONN"),
@ActivationConfigProperty(propertyName = "hostName", propertyValue = "localhost"),
@ActivationConfigProperty(propertyName = "queueManager", propertyValue = "QMA"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1414"),
@ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT"),
@ActivationConfigProperty(propertyName = "username", propertyValue = "mqm"),
@ActivationConfigProperty(propertyName = "password", propertyValue = "password")
})
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
@ResourceAdapter(value = "wmq.jmsra.rar")
Когда я пытаюсь развернуть бин, он говорит
DEPLOYMENTS IN ERROR:
Deployment "jboss.j2ee:ear=integration-1.0-SNAPSHOT.ear,jar=business-logic-1.0-SNAPSHOT.jar,
name=WMQMDBTest,service=EJB3" is in error due to the following reason(s):
javax.naming.NameNotFoundException: queA not bound