【问题标题】:exploring the use of topic and event in Wso2 ESB探索 Wso2 ESB 中主题和事件的使用
【发布时间】:2016-06-30 19:24:10
【问题描述】:

我正在探索 WSO2 ESB 4.8.1 中主题和事件的使用,我创建了一个主题并将其订阅到在 WSO2 WSAS(A) 中运行的一个数据服务的端点,我想如果我发布了一条消息在主题详细信息控制台的发布工具中为 A 操作之一的传入消息定义的结构,该消息将被发送到 supscriptor (A) 和一切正常工作的地方,但它没有。为什么? 我还使用事件中介创建了一个代理服务,并使用创建的主题的名称配置了事件中介。然后我尝试使用具有与前面解释的相同结构的传入消息的代理服务。我希望至少在 WSAS Soap Tracer 中收到一条传入消息,但什么也没发生。 我错过了什么吗?

【问题讨论】:

  • 订阅主题的dataservice的服务契约是什么? WSDL?休息?其他?
  • 是 WSO2 WSAS 生成的 WSDL,我使用的消息是 SOAP UI 根据该 WSDL 生成的消息

标签: events wso2 esb


【解决方案1】:

事件基础架构基于WS-Eventing 规范。由于您使用基于 WSDL 的服务作为主题的订阅者并打算调用该服务的特定操作,我想它失败是因为 SOAP 消息和/或 SOAP 操作不正确,因为发送到主题的消息和服务基于 WS-Eventing 而不是您的服务。

我在下面创建了一个简单的代理并订阅了一个主题。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="LogSubMessage" transports="http" statistics="disable" trace="disable" startOnLoad="true">
    <target>
        <inSequence>
            <log level="full" category="ERROR">
                <property name="SERVICE" value="LogSubMessage"/>
            </log>
        </inSequence>
        <outSequence><send/></outSequence>
    </target>
</proxy>

然后我向主题发送了&lt;test/&gt; 消息。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <ns:topic xmlns:ns="http://wso2.org/ns/2009/09/eventing/notify">topicname</ns:topic>
    </soapenv:Header>
    <soapenv:Body>
        <test/>
    </soapenv:Body>
</soapenv:Envelope>

正如您在上面的消息中看到的,服务中记录的消息包含 WS-Eventing SOAP 标头,并且 SOAP 操作设置为 http://ws.apache.org/ws/2007/05/eventing-extended/Publish 。如果您的数据服务要求 SOAP 标头包含要调用的操作的名称,那么它将拒绝此请求。

我建议创建一个与上述类似的代理服务来订阅该主题。该服务将设置正确的 SOAP 操作,执行您需要的任何消息转换,并调用您的数据服务。

【讨论】:

  • 你好 Chris,虽然我不太喜欢代理每个 supscriptor 的想法,但我尝试按照你告诉我的那样完成我的研究案例,因为我使用了标头中介并将 SOAPAction 属性更改为我的数据服务应该接收的那个(我用 tcpmon 检查过),在此之前我收到了这个错误:找不到操作的端点引用(EPR),现在我没有收到任何错误,wsas soap 跟踪器收到传入的消息,但数据服务不会在数据库中进行更改
  • wsas给出的out响应信息是这样的:schemas.xmlsoap.org/soap/envelope">
    soapenv:Body>
猜你喜欢
  • 2012-05-11
  • 2013-06-21
  • 2012-11-24
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多