关于 messageType 和 JIRA 连接器

About messageType and JIRA connector

我有两个用于测试目的的代理服务,它们使用 JIRA 连接器与 JIRA 连接。第一个,接受 "application/json" 有效负载:

<proxy name="PruebaJIRA_01" startOnLoad="true" trace="disable" transports="https http">
    <description/>
    <target>
        <inSequence>
            <log level="full"/>
            <jira.init>
                <username>xxxxxx</username>
                <password>xxxxxx</password>
                <uri>http://gea-jira.its.ute.com/jiragea</uri>
            </jira.init>
            <property expression="json-eval($.consulta)" name="query"/>
            <jira.searchJira>
                <query>{$ctx:query}</query>
            </jira.searchJira>
            <log level="full"/>
            <respond/>
        </inSequence>
    </target>
</proxy>

第二个,接受"text/xml"有效载荷:

<proxy name="PruebaJIRA_02" startOnLoad="true" trace="disable" transports="https http">
    <description/>
    <target>
        <inSequence>
            <property name="messageType" scope="axis2" value="application/json"/>
            <log level="full"/>
            <jira.init>
                <username>xxxxxx</username>
                <password>xxxxxx</password>
                <uri>http://gea-jira.its.ute.com/jiragea</uri>
            </jira.init>
            <property expression="//root/consulta" name="query"/>
            <jira.searchJira>
                <query>{$ctx:query}</query>
            </jira.searchJira>
            <log level="full"/>
            <respond/>
        </inSequence>
    </target>
</proxy>

似乎 JIRA 连接器只接受 JSON 传入数据,所以在第二个中我在序列顶部有一个 "messageType" 转换。

两种服务 运行 好的,但问题是:如果我使用的是 xpath 表达式,为什么第二个代理可以工作?

我正在使用 wso2 ESB 4.9.0。

提前致谢。

ESB 从不同的客户端和系统接收不同的消息格式,因为这个 ESB 需要 ESB 内部的规范消息格式来完成所有消息中介任务。因此,消息生成器用于将传入消息转换为规范格式。 ESB 内部使用的规范格式是 SOAP。所以您的 XPATH 表达式肯定适用于 soap 消息。

MessageType 属性 用于 select 更正消息格式化程序,消息格式化程序用于构建来自代理的传出流。

更多信息 - demystifying-wso2-esb-pass-through-transport/ Working with Message Builders and Formatters