当前位置: 首页 > 知识库问答 >
问题:

传输发送方和接收方JMS的正确配置?

洪季萌
2023-03-14

我有一些问题,因为文件不清楚…

如何设置WSO2 ESB环境,使其能够读写来自WSO2MessageBroker的消息。

我跟踪了ConfigurewithWSO2MessageBroker

    null
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="JMSTopic" locked="false">
           <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
        </parameter>

        <parameter name="JMSQueue" locked="false">
            <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</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">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
        </parameter>
    </transportReceiver>
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">    
      <parameter name="default" locked="false">
                 <parameter name="java.naming.factory.initial" locked="false">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
                 <parameter name="java.naming.provider.url" locked="false">repository/conf/jndi.properties</parameter>
                 <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">ConnectionFactory</parameter>
          </parameter>        
     </transportSender>
connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'
connectionfactory.ConnectionFactory      = amqp://admin:admin@clientID/carbon?brokerlist='tcp://gst-esb-qa-01:5674'

queue.myQueue = myQueue
queue.testQueue= testQueue

topic.MyTopic = MyTopic

我的代理人

<proxy name="SendMessagetoJMSProxy" transports="http" startOnLoad="true">
                  <target>
                     <endpoint>
                        <address uri="jms:/myQueue?&amp;transport.jms.DestinationType=queue"/>
                     </endpoint>
                     <inSequence>
                        <log level="custom">
                           <property name="STATE" value="message is sent to queue"/>
                        </log>
                        <property name="OUT_ONLY" value="true"/>
                        <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
                     </inSequence>
                     <outSequence/>
                  </target>
               </proxy>

我的SOAP UI调用

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.samples" xmlns:xsd="http://services.samples/xsd">
                   <soapenv:Header/>
                   <soapenv:Body>
                      <ser:dummy>
                            <xsd:symbol>IBM</xsd:symbol>
                      </ser:dummy>
                   </soapenv:Body>
                </soapenv:Envelope>

根据doc,我应该在JMS message Broker中看到消息,但我得到了

<parameter name="java.naming.provider.url" locked="false">file:/home/wso2admin/wso2esb-5.0.0/repository/conf/jndi.properties</parameter>

第二:此错误是否与消息生成器和格式化程序有关????

任何帮助都很好...但我被困了几天...

共有1个答案

权烨磊
2023-03-14

第一个问题:axis2.xml中的java.naming.provider.url参数是否与[ESB Home]位置相关?

不,您不需要添加ESB主位置。

第二个问题:此错误是否与消息生成器和格式化程序有关????

<proxy name="QueueProxy" startOnLoad="true" transports="jms">
    <target>
        <inSequence>
             <property name="OUT_ONLY" value="true"/>
             <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
            <send>
                <endpoint>
                    <address uri="jms:/MyQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;java.naming.provider.url=repository/conf/jndi.properties"/>
                </endpoint>
            </send>
        </inSequence>
    </target>
</proxy>
 类似资料:
  • 我有下面的mq配置类,通过它我可以在接收队列中接收消息,但是当使用JmsTemplate bean时,我的消息不会发送到队列中。我没有获得任何或任何异常,似乎成功。它是一段XML字符串,我将其作为有效负载发送,如下所示: 我的问题是我配置错误了吗?我是否需要多个ConnectionFactory或container Factory,因为我有接收和发送队列? 我的听众:

  • 我最近使用HPFortify服务对我的Android源代码做了一次代码扫描。他们报告了一个广播接收器和发送器的安全漏洞。广播发送器和接收器是应用程序内部的,而意图不是发送到应用程序外部的。这些主要用于内部交流。HPFortify建议使用广播者权限来减少攻击矢量。这样你就限制了broadcaster,否则任何恶意应用程序都可以发送意图,而broadcast receiver将处理它。类似地,他们建议

  • 到目前为止我有下一个: 我被“已发送消息”困住了。看起来子请求没有真正发送。我在MQ UI中看到队列深度为1,但内部没有消息,并且我的子请求侦听器也没有看到任何消息。 我还尝试使用方法: 启用事务开始/结束日志也很有帮助:

  • 本文向大家介绍php发送与接收流文件的方法,包括了php发送与接收流文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php发送与接收流文件的方法。分享给大家供大家参考。具体如下: sendStreamFile.php 把文件以流的形式发送 receiveStreamFile.php 接收流文件并保存到本地 sendStreamFile.php文件: receiveStreamFi

  • 我们在我们的项目中使用连接池。我们在我们的项目中看到,在连接关闭后,语句也会关闭。我知道在连接池的情况下,连接关闭后,到数据库的物理连接不会关闭,而是返回到池进行重用。所以我的问题是: 如果在连接关闭后关闭语句会发生什么?语句是否会正确关闭/关闭连接是否会关闭所有语句,关闭语句是多余的/语句是打开的,尽管连接返回到池中,但由于打开语句,它是不可重用的?(我们同时使用Statement和Prepar