关于messageType和JIRA连接器

时间:2015-12-01 08:30:22

标签: wso2esb

我有两个用于测试目的的代理服务,它使用JIRA Connector与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。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

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