您好我是新来的春天JMS和WebSphere MQ。 任何一个可以给我一步一步PROCESSS或例如如何从WebSphere MQ接收报文,并能够打印在控制台感谢该消息u非常多的帮助
Answer 1:
下面是使用Spring的MDP /激活规范为WebSphere MQ工作示例
MDP-listener.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<bean id="messageListener" class="com.rohid.samples.SpringMdp" />
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
<property name="activationSpec">
<bean class="com.ibm.mq.connector.inbound.ActivationSpecImpl">
<property name="destinationType" value="javax.jms.Queue"/>
<property name="destination" value="QUEUE1"/>
<property name="hostName" value="A.B.C"/>
<property name="queueManager" value="QM_"/>
<property name="port" value="1414"/>
<property name="channel" value="SYSTEM.ADMIN.SVNNN"/>
<property name="transportType" value="CLIENT"/>
<property name="userName" value="abc"/>
<property name="password" value="jabc"/>
</bean>
</property>
<property name="messageListener" ref="messageListener"/>
<property name="resourceAdapter" ref="myResourceAdapterBean"/>
</bean>
<bean id="myResourceAdapterBean" class ="org.springframework.jca.support.ResourceAdapterFactoryBean">
<property name="resourceAdapter">
<bean class="com.ibm.mq.connector.ResourceAdapterImpl">
<property name="maxConnections" value="50"/>
</bean>
</property>
<property name="workManager">
<bean class="org.springframework.jca.work.SimpleTaskWorkManager"/>
</property>
</bean>
</beans>
web.xml中
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/context/mdp-listener.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
SpringMdp
package com.rohid.samples;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class SpringMdp implements MessageListener {
public void onMessage(Message message) {
try {
if(message instanceof TextMessage) {
System.out.println(this + " : " + ((TextMessage) message).getText());
}
} catch (JMSException ex){
throw new RuntimeException(ex);
}
}
}
“
Answer 2:
我只是通过这个去了自己。 先从春天启动JMS入门
添加一个bean提供MQQueueConnectionFactory
@Configuration
@EnableJms
public class MQConfiguration {
@Bean
public MQQueueConnectionFactory mqFactory()
{
MQQueueConnectionFactory factory = null;
try {
factory = new MQQueueConnectionFactory();
factory.setHostName("localhost");
factory.setPort(1414);
factory.setQueueManager("QM.LOCAL");
factory.setChannel("SYSTEM.DEF.SVRCONN");
factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
}
catch (JMSException e) {
System.out.println(e);
}
return factory;
}
}
卸下org.apache.activemq / ActiveMQ的经纪人的依赖,以确保在的ActiveMQ不潜行的方式。
添加依赖于com.ibm.mqjms.jar,com.bim.mq.jmqi.jar,dhbcore.jar
跑
Answer 3:
这些对于WMQ V5.3书面但大多仍然适用。 已更改的事情更多关于WMQ管理比连接和配置。
developerWorks中国:春天系列
请务必包括WMQ服务器和客户端对未来岗位的版本,因为在Java / JMS配置的细节上有所不同。 此外,一定要使用WMQ客户端或服务器,你正在使用的版本相匹配的文档的版本。
Answer 4:
您可能还需要考虑对JMS的顶部使用Spring的集成; 有一个使用ActiveMQ的这里的样本https://github.com/SpringSource/spring-integration-samples/tree/master/basic/jms -你只需要改变JMS配置使用MQ代替。
样品读取来自控制台发送通过JMS消息,由消息驱动适配器读取,并且写入到控制台。
文章来源: Spring JMS and Websphere MQ