使用IBM Messagesight配置WSO2 ESB JMS传输

使用IBM Messagesight配置WSO2 ESB JMS传输,jms,wso2,wso2esb,Jms,Wso2,Wso2esb,我想知道如何配置JMS传输以使用IBM MessageSight,类似于: 现在,我在axis2.xml中有以下内容: <transportReceiver name="ibmMsgSightJMS" class="org.apache.axis2.transport.jms.JMSListener"> <parameter name="myTopicConnectionFactory" locked="false"> <pa

我想知道如何配置JMS传输以使用IBM MessageSight,类似于:

现在,我在axis2.xml中有以下内容:

  <transportReceiver name="ibmMsgSightJMS" class="org.apache.axis2.transport.jms.JMSListener">
       <parameter name="myTopicConnectionFactory" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
       </parameter>

       <parameter name="myQueueConnectionFactory" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
       </parameter>
       <parameter name="default" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">com.ibm.ima.jms.ImaJmsFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">tcp://192.168.154.128:1883</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
       </parameter>
   </transportReceiver>

com.ibm.ima.jms.ImaJmsFactory
tcp://192.168.154.128:1883
主题连接工厂
话题
com.ibm.ima.jms.ImaJmsFactory
tcp://192.168.154.128:1883
队列连接工厂
队列
com.ibm.ima.jms.ImaJmsFactory
tcp://192.168.154.128:1883
队列连接工厂
队列
我在ESB代理服务中有类似的内容:

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="esbProcessMqttJMSPS" statistics="disable" trace="disable" transports="ibmMsgSightJMS">
    <parameter name="transport.jms.ConcurrentConsumers">1</parameter>
    <parameter name="transport.jms.ConnectionFactory">myTopicConnectionFactory</parameter>
    <parameter name="transport.jms.DestinationType">B</parameter>
    <parameter name="transport.jms.Destination">B</parameter>
</proxy>

1.
MyTopic连接工厂
B
B
当我启动ESB服务器时,会出现以下错误:无法获取JNDI上下文、JMS连接工厂:TopicConnectionFactory或缺省目标:JMS CF为null


任何帮助都将不胜感激。谢谢

好吧,我就知道了

axis2.xml中的jms配置应为:

   <transportReceiver name="ibmMsgSightJMS" class="org.apache.axis2.transport.jms.JMSListener">
       <parameter name="myTopicConnectionFactory">
           <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url" locked="false">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
       </parameter>

       <parameter name="myQueueConnectionFactory">
           <parameter name="java.naming.factory.initial">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
       </parameter>

       <parameter name="default">
           <parameter name="java.naming.factory.initial">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
           <parameter name="java.naming.provider.url">file:/C:/path/to/wso2/repository/conf/jndi</parameter>
           <parameter name="transport.jms.ConnectionFactoryJNDIName">connFactory1</parameter>
            <parameter name="transport.jms.ConnectionFactoryType">topic</parameter>
       </parameter>
   </transportReceiver>
另外,不要忘记将ImaJmsClient.jar放在components/lib中


我仍然存在每个服务都在创建主题/队列的问题,并且由于它们没有在.bindings中定义,服务器正在呕吐。我通过删除每个数据服务和jar服务上的jms传输协议来解决这个问题。

在代理服务中,“transport.jms.DestinationType”应该是“topic”。传输目标类型接受的值为“队列”或“主题”。你能检查一下上面的变化吗打得好-我在玩东西,忘了把它换回来。
connFactory1/ClassName=com.ibm.ima.jms.impl.ImaConnectionFactory
connFactory1/FactoryName=com.ibm.ima.jms.impl.ImaConnectionFactory
connFactory1/RefAddr/0/Encoding=String
connFactory1/RefAddr/0/Type=Port
connFactory1/RefAddr/0/Content=16102
connFactory1/RefAddr/1/Encoding=String
connFactory1/RefAddr/1/Type=Server
connFactory1/RefAddr/1/Content=192.168.154.128
connFactory1/RefAddr/2/Encoding=String
connFactory1/RefAddr/2/Content=common
connFactory1/RefAddr/2/Type=ObjectType
RequestTopic/ClassName=com.ibm.ima.jms.impl.ImaTopic
RequestTopic/FactoryName=com.ibm.ima.jms.impl.ImaTopic
RequestTopic/RefAddr/0/Encoding=String
RequestTopic/RefAddr/0/Type=Name
RequestTopic/RefAddr/0/Content=testRequestTopic
ResponseTopic/ClassName=com.ibm.ima.jms.impl.ImaTopic
ResponseTopic/FactoryName=com.ibm.ima.jms.impl.ImaTopic
ResponseTopic/RefAddr/0/Encoding=String
ResponseTopic/RefAddr/0/Type=Name
ResponseTopic/RefAddr/0/Content=testResponseTopic