首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSO2 Message Broker 3.0.0和WS-Eventing

WSO2 Message Broker 3.0.0和WS-Eventing
EN

Stack Overflow用户
提问于 2016-01-13 21:09:36
回答 1查看 159关注 0票数 0

我正在测试WSO2 Message Broker3.0,但我缺少为WS端点订阅主题的功能。这个功能可以像在MB 2.x中一样在MB 3.0中激活吗?我正在尝试为WS-Endpoint实现可靠的(排队的)主题订阅。如何使用WSO2 MB 3.0实现它?

EN

回答 1

Stack Overflow用户

发布于 2016-01-15 13:49:25

WS-Eventing已从WSO2 MB 3.0.0中删除。但是您可以通过将WSO2 MB与WSO2企业服务总线集成来实现这一点。这是广泛使用的可靠消息传递的公共集成模式,您还可以在将消息发送到实际的后端之前,在WSO2企业服务总线中根据需要修改/中介消息。让我们看看如何做到这一点。

我将向您展示如何在本地机器上集成WSO2企业服务总线和WSO2 MB。

  • http://wso2.com/products/enterprise-service-bus/下载WSO2 ESB 4.9.0 (最新版本)。
  • 解压后,打开wso2esb-4.9.0/ WSO2 /conf/

.xml文件,将<Offset>0</Offset>更改为<Offset>1</Offset>。这允许您在一台机器上运行多个carbon服务器。您可以访问管理控制台https://localhost:9444/carbon

  • Open wso2esb-4.9.0/repository/conf/axis2/axis2.xml,并取消注释<!--Uncomment this and configure as appropriate for JMS transport support with WSO2 MB 2.x.x-->之后的部分和<!--uncomment this and configure to use connection pools for sending messages-->之后的部分。
  • wso2mb-3.0.0/client-lib中的andes-client-3.0.1.jar geronimo-jms_1.1_spec-1.1.0.wso2v1.jar org.wso2.securevault-1.0.0-wso2v2.jar复制到wso2esb-4.9.0/repository/components/lib
  • 将以下条目添加到wso2esb-4.9.0/repository/conf/jndi.properties

connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5672‘

connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5672‘

topic.MyDurableTopic = MyDurbleTopic

  • First启动WSO2 MB,然后根据您正在完成的操作系统运行WSO2文件夹中的wso2server.shwso2server.bat来启动bin ESB。

让我们看看如何创建JMS listener代理,该代理创建以WSO2 MB为单位的持久订阅。进入企业服务总线管理控制台,选择Proxy service -> Custom Proxy ->切换到源视图。然后复制并粘贴到synapse配置下,以创建JMS侦听器。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
      name="MyDurableTopicListenerProxy"
      transports="jms"
      statistics="disable"
      trace="disable"
      startOnLoad="true">
  <target>
     <inSequence>
        <property name="OUT_ONLY" value="true"/>
        <log level="custom">
           <property name="STATE" value="dispatch message..."/>
        </log>
        <send>
           <endpoint>
              <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
           </endpoint>
        </send>
     </inSequence>
     <outSequence>
        <send/>
     </outSequence>
  </target>
  <parameter name="transport.jms.ContentType">
     <rules>
        <jmsProperty>contentType</jmsProperty>
        <default>text/xml</default>
     </rules>
  </parameter>
  <parameter name="transport.jms.ConnectionFactory">myTopicConnectionFactory</parameter>
  <parameter name="transport.jms.DestinationType">topic</parameter>
  <parameter name="transport.jms.SubscriptionDurable">true</parameter>
  <parameter name="transport.jms.Destination">MyDurbleTopic</parameter>
  <parameter name="transport.jms.DurableSubscriberName">subId-x</parameter>
  <parameter name="transport.jms.CacheLevel">consumer</parameter>
  <parameter name="transport.jms.DurableSubscriberClientID">subId-x</parameter>
  <description/>
</proxy>

您可以通过更改<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>来替换任何WS端点。这里我使用了示例axis2后端。一旦你保存了代理服务,它就会以WSO2 MB为单位用MyDurableTopic创建持久订阅。您不需要在WSO2 MB中创建MyDurableTopic。订阅将创建一个持久主题(根据JMS规范)。

现在,您可以将消息发送到持久主题,并查看这些消息分派到WS端点。这是JMS到HTTP (跨协议)的传输。同样,您可以将标准模式与此设置集成。

希望这能有所帮助!

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34767600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档