我在WildFly 10服务器上部署了Spring Web应用程序。我需要添加向/从IBM MQ服务器发送和接收消息的功能(现在版本为7.5,但版本将很快更新到9)。 我阅读了很多文档,如何配置WildFly(JBoss)或spring应用程序,但是有几种方法可以做到这一点,我觉得这是最好的做法。
我需要在 standalone.xml 文件中编写什么内容?这种配置是否正确:
<subsystem xmlns="urn:jboss:domain:resource-adapters:4.0">
<resource-adapters>
<resource-adapter id="wmq.jmsra.rar">
<archive>
wmq.jmsra.rar
</archive>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="javax.jms.QueueConnectionFactory" jndi-name="java:/jms/jmsConnectionFactory" enabled="true" pool-name="jmsConnectionFactory">
<config-property name="channel">
SYSTEM.DEF.SVRCONN
</config-property>
<config-property name="hostName">
myserver
</config-property>
<config-property name="transportType">
CLIENT
</config-property>
<config-property name="queueManager">
QM3
</config-property>
<config-property name="port">
1414
</config-property>
<security>
<application/>
</security>
<validation>
<background-validation>false</background-validation>
</validation>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:/jms/FROMS1" enabled="true" use-java-context="true" pool-name="FROMS1">
<config-property name="baseQueueName">
FROMS1
</config-property>
<config-property name="baseQueueManagerName">
QM3
</config-property>
</admin-object>
<admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:/jms/TOS1" enabled="true" use-java-context="true" pool-name="TOS1">
<config-property name="baseQueueName">
TOS1
</config-property>
<config-property name="baseQueueManagerName">
QM3
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
或者不需要在WildFly中配置资源适配器,我可以在应用程序中配置它?
在 pom.xml 中,我添加:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
在一些文章中,我看到了 com.ibm.mqjms 和 com.ibm.mq.jmqi 的依赖关系,是否需要它们?
下一步是配置 spring-servlet.xml 。怎么做? 使用 com.ibm.mq.jms.MQQueueConnectionFactory 或 spring SingleConnectionFactory 的连接工厂?
如何从应用程序中的队列获取和放置消息?