【问题标题】:WSO2 IBM MQ xml message parsing issueWSO2 IBM MQ xml 消息解析问题
【发布时间】:2017-03-05 21:10:03
【问题描述】:

尝试处理WSO2中xml格式的IMB MQ消息。

我能够从队列中读取消息。我的信息是这样的:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <vi:Show xmlns:vi="urn:vehdpms.tms.t.com/vehinv">
      <vi:VehicleInventoryBOD>
        <emf:ApplicationArea xmlns:emf="http://ice.tms.t.com/EMF">
          <emf:CreationDateTime>2017-01-09T11:18:04.622-08:00</emf:CreationDateTime>
          <emf:BODID>daedfeed-a56c-4d4a-bf8d-77d0bcd00899</emf:BODID>
          <emf:Sender>
            <emf:ServiceName>Vehicle Inventory</emf:ServiceName>
            <emf:ServiceVersion>GETSH</emf:ServiceVersion>
          </emf:Sender>
          <rtm:RTMHeader xmlns:rtm="urn:vehdpms.tms.t.com/rtmheader">
            <rtm:Source>
              <rtm:Company>TMS</rtm:Company>
              <rtm:System>VROR</rtm:System>
            </rtm:Source>
            <rtm:Response>
              <rtm:Name>Vehicle Inventory</rtm:Name>
            </rtm:Response>
          </rtm:RTMHeader>
        </emf:ApplicationArea>
        <vi:DataArea>
          <vi:Verb>Show</vi:Verb>
          <vi:VehicleInventory>
            <vi:UnitId>122755280</vi:UnitId>
            <vi:URN>NJ19555772</vi:URN>
            <vi:WMI>5YF</vi:WMI>
            <vi:VDSPrefix>BURHE</vi:VDSPrefix>
            <vi:VIN>5YFAAAAE5HP765434</vi:VIN>

试图将 5YFAAAAE5HP765434 放入属性中。 我正在使用属性调解器从 XML 中提取 VIN 号...我指向 xml,所以我得到了类似的东西

<inSequence>
            <property expression="/soapenv:Envelope/soapenv:Body/vi:Show/vi:VehicleInventoryBOD/vi:DataArea/vi:VehicleInventory/vi:VIN" name="test" scope="default" type="STRING" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
            <log level="custom">
                <property expression="get-property('test')" name="Requested VIN"/>
            </log>
        </inSequence>

但我还是没听懂……我的信息就像

TID[-1234] [ESB] [2017-03-05 00:29:39,641] 信息 {org.apache.synapse.mediators.builtin.LogMediator} - 请求的 VIN =

所以在属性中的表达有问题...有人可以指出我正确的方向吗..

【问题讨论】:

    标签: wso2 wso2esb


    【解决方案1】:

    您的调解中应该有一个例外,因为前缀 vi: 没有贴花

    试试看:

    <property expression="$body/vi:Show/vi:VehicleInventoryBOD/vi:DataArea/vi:VehicleInventory/vi:VIN" name="test" scope="default" type="STRING" xmlns:vi="urn:vehdpms.tms.t.com/vehinv"/>
    

    【讨论】:

    • 感谢 Jean-Michel 的快速响应,但运气不佳......仍然没有 VIN :(
    猜你喜欢
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多