Я пытаюсь подключиться к Websphere MQ из экземпляра JBoss EAP 6.3. Я могу заставить соединение работать, но он требует, чтобы я закодировал имя хоста в bean-компоненте. Что-то я бы предпочел не делать. У меня есть конфиг в файле standalone.xml, но я не думаю, что эти настройки используются.JBoss подключение к MQ из standalone.xml
Это то, что у меня в standalone.xml:
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="wmq.jmsra.rar">
<archive>
wmq.jmsra.rar
</archive>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:/jms/wmqCF" enabled="true" use-java-context="true" pool-name="wmqCF">
<config-property name="port">
1414
</config-property>
<config-property name="hostName">
my.mqserver.net
</config-property>
<config-property name="channel">
SYSTEM.DEF.SVRCONN
</config-property>
<config-property name="transportType">
CLIENT
</config-property>
<config-property name="queueManager">
MY.QUEUE.MANAGER
</config-property>
</connection-definition>
</connection-definitions>
</resource-adapter>
</resource-adapters>
</subsystem>
В моем боба у меня есть следующие аннотации:
@MessageDriven(name="WebSphereMQMDB",
activationConfig =
{
@ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "MQ.QUEUE.NAME")
})
public class WebSphereMQMDB implements MessageListener {
}
Когда я раскрываю код выше, я получаю сообщение об ошибке с указанием его можно 't подключиться к диспетчеру очереди на localhost (1414). Когда я добавляю свойство Hostname к фасоли он работает, например, так:
@MessageDriven(name="WebSphereMQMDB",
activationConfig =
{
@ActivationConfigProperty(propertyName = "hostName",propertyValue = "my.mqserver.net"),
@ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "MQ.QUEUE.NAME")
})
public class WebSphereMQMDB implements MessageListener {
}
Как я могу получить боб использовать конфигурацию с standalone.xml, так что я не должен установить свойство Hostname в каждый боб?
Я знал о свойствах системы, и они кажутся надежным способом централизации свойств соединения. Но действительно ли мне нужно установить параметры входящего соединения для каждого компонента? – Deddiekoel
Я боюсь, что если вы используете WebSphere MQ, вам нужно будет. Насколько я читал для нашей миграции, вы не можете определить место назначения в файле конфигурации xml так же, как и в HornetQ. – alphamikevictor
Я получил его для работы с свойствами системы. Так что это лучший ответ. Однако, чтобы заставить его работать, вам также необходимо выполнить следующие команды cli: /subsystem = ee: write-attribute (name = "spec-descriptor-property-replacement", value = True) 10/subsystem = ee : write-attribute (name = "annotation-property-replacement", value = True) Это позволяет заменить свойство. Вы также можете отредактировать файл standalone.xml под подсистемой ee. – Deddiekoel