春天JMS和WebSphere MQ(Spring JMS and Websphere MQ)

2019-07-18 17:39发布

您好我是新来的春天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