Wso2 传输发送器的正确配置&;接收器JMS?

Wso2 传输发送器的正确配置&;接收器JMS?,wso2,wso2esb,Wso2,Wso2esb,我有一些问题,因为文件不清楚 我应该如何设置WSO2 ESB环境,以便能够从WSO2 MessageBroker读取和写入消息 我跟着 我在同一台服务器上有ESB和MB(MB的偏移量=2) /repository/conf/axis2/axis2.xml 我的代理人 <proxy name="SendMessagetoJMSProxy" transports="http" startOnLoad="true"> <target>

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

我应该如何设置WSO2 ESB环境,以便能够从WSO2 MessageBroker读取和写入消息

我跟着

  • 我在同一台服务器上有ESB和MB(MB的偏移量=2) /repository/conf/axis2/axis2.xml
  • 我的代理人

    <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>
    
    
    

    也许那应该看起来像

    <parameter name="java.naming.provider.url" locked="false">file:/home/wso2admin/wso2esb-5.0.0/repository/conf/jndi.properties</parameter>
    
    file:/home/wso2admin/wso2esb-5.0.0/repository/conf/jndi.properties
    
    秒: 此错误与消息生成器和格式化程序有关吗


    任何帮助都很好…因为我被困了好几天…

    请尝试下面的代理并检查您使用的URL格式

    <proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy" transports="http">
    <target>
        <inSequence>
            <property action="set" name="OUT_ONLY" value="true"/>
            <send>
                <endpoint>
                    <address uri="jms:/myQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&transport.jms.DestinationType=queue"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </target>
    <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
    
    
    
    

  • 请尝试下面的代理并检查您使用的URL格式

    <proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy" transports="http">
    <target>
        <inSequence>
            <property action="set" name="OUT_ONLY" value="true"/>
            <send>
                <endpoint>
                    <address uri="jms:/myQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&transport.jms.DestinationType=queue"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </target>
    <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
    
    
    
    

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

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

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

    是的,消息生成器出现错误

    只需验证是否添加了客户端JAR,并验证代理即可。请创建一个代理,如下所示,然后重试

    代理示例:

    <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>
    
    
    
    第一个问题:axis2.xml中的java.naming.provider.url参数是否相对于[ESB Home]位置

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

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

    是的,消息生成器出现错误

    只需验证是否添加了客户端JAR,并验证代理即可。请创建一个代理,如下所示,然后重试

    代理示例:

    <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>
    
    
    
    感谢拉贾兹和简

    我创建了一个代理

    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="SendMessagetoJMSProxy"
           startOnLoad="true"
           statistics="disable"
           trace="disable"
           transports="http,https">
       <target>
          <inSequence>
             <log level="custom">
                <property name="STATE" value="message is sent to myQueue"/>
             </log>
             <property name="OUT_ONLY" value="true"/>
             <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
          </inSequence>
          <outSequence/>
          <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>
       </target>
       <description/>
    </proxy>
    
    
    
    感谢拉贾兹和简

    我创建了一个代理

    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="SendMessagetoJMSProxy"
           startOnLoad="true"
           statistics="disable"
           trace="disable"
           transports="http,https">
       <target>
          <inSequence>
             <log level="custom">
                <property name="STATE" value="message is sent to myQueue"/>
             </log>
             <property name="OUT_ONLY" value="true"/>
             <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
          </inSequence>
          <outSequence/>
          <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>
       </target>
       <description/>
    </proxy>
    
    
    

    删除“&”:?&不正确。此外,我认为您甚至不需要jms destinationtype,因为您将队列配置为“默认”。在我的例子中,我已经在axis2 xml中的“transportsender”参数中添加了一个队列,但我有一个activeMQ而不是MB,因此它不是100%可比的。感谢Jan的评论,但我想知道我们是否在axis2.xml中为transportReceiver使用JMS配置部分,为什么我们不能只告诉代理我们需要的参数名称??为什么我们再次设置ConnectionFactoryJNDIName、ConnectionFactoryType..etc。。?我们能不能放点像。。。它应该选择默认的JMS设置??删除“&”:?&是不正确的。此外,我认为您甚至不需要jms destinationtype,因为您将队列配置为“默认”。在我的例子中,我已经在axis2 xml中的“transportsender”参数中添加了一个队列,但我有一个activeMQ而不是MB,因此它不是100%可比的。感谢Jan的评论,但我想知道我们是否在axis2.xml中为transportReceiver使用JMS配置部分,为什么我们不能只告诉代理我们需要的参数名称??为什么我们再次设置ConnectionFactoryJNDIName、ConnectionFactoryType..etc。。?我们能不能放点像。。。它应该选择默认的JMS设置???在这里,您正在使用activemq进行配置。它应该随MB配置而更改。在这里,您使用activemq进行配置。它应该随MB配置而改变
    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="SendMessagetoJMSProxy"
           startOnLoad="true"
           statistics="disable"
           trace="disable"
           transports="http,https">
       <target>
          <inSequence>
             <log level="custom">
                <property name="STATE" value="message is sent to myQueue"/>
             </log>
             <property name="OUT_ONLY" value="true"/>
             <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
          </inSequence>
          <outSequence/>
          <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>
       </target>
       <description/>
    </proxy>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="SendMessagetoJMSProxy2"
           startOnLoad="true"
           statistics="disable"
           trace="disable"
           transports="http,https">
       <target>
          <inSequence>
             <log level="custom">
                <property name="STATE" value="message is sent to GST_TMS_ASSOCIATE_LEASE Queue"/>
             </log>
             <property name="OUT_ONLY" value="true"/>
             <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
          </inSequence>
          <outSequence/>
          <endpoint>
             <address uri="jms:/myQueue"/>
          </endpoint>
       </target>
       <description/>
    </proxy>