Events 探索主题和事件在Wso2 ESB中的使用

Events 探索主题和事件在Wso2 ESB中的使用,events,wso2,esb,Events,Wso2,Esb,我正在探索WSO2 ESB 4.8.1中主题和事件的使用,我创建了一个主题,并将其订阅为WSO2 WSAS(a)中运行的一个数据服务的端点,我假设如果我发布了一条消息,该消息的结构为主题详细信息控制台的发布工具中某个操作的传入消息定义,该消息将被发送到supscriptor(A)和所有可以正常工作的地方,但它没有。为什么? 我还创建了一个带有事件中介的代理服务,并使用创建主题的名称配置了事件中介。然后,我尝试代理服务,并使用前面介绍的相同结构的传入消息。我希望至少在WSAS Soap跟踪程序中得

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

事件基础结构基于规范。由于您正在使用基于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>

然后我向主题发送了一条
消息

<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操作被设置为。如果您的数据服务要求SOAP头包含要调用的操作的名称,那么它将拒绝此请求


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

订阅此主题的数据服务的服务契约是什么?WSDL?休息Other?是由WSO2 WSAS生成的WSDL,我使用的消息是由SOAP UI根据WSDLHello Chris生成的,虽然我不太喜欢代理每个supscriptor的想法,但我尝试按照您告诉我的方式完成我的研究案例,为此,我使用了header mediator并将SOAPAction属性更改为我的dataservice应该接收的属性(我与tcpmon进行了检查),在此之前我收到了这个错误:找不到操作的端点引用(EPR),现在我没有收到任何错误,wsas soap跟踪器接收传入消息,但是dataservice不在DBAS中进行更改wsas给出的out响应消息如下: