Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2 IBM MQ xml消息解析问题_Wso2_Wso2esb - Fatal编程技术网

WSO2 IBM MQ xml消息解析问题

WSO2 IBM MQ xml消息解析问题,wso2,wso2esb,Wso2,Wso2esb,正在尝试以xml格式处理WSO2中的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>

正在尝试以xml格式处理WSO2中的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>

2017-01-09T11:18:04.622-08:00
daedfeed-a56c-4d4a-bf8d-77d0bcd00899
车辆清单
格茨
经颅多普勒
弗罗尔
车辆清单
显示
122755280
NJ19555772
5YF
布里
5YFAAAE5HP765434
试图将5yfaaae5hp765434放入属性。 我正在使用属性中介从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:39641]信息{org.apache.synapse.mediators.builtin.LogMediator}-请求的VIN=


所以属性中的表达式有问题。。。有人能把我推到正确的方向吗?

您的调解中应该有一个例外,因为前缀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:(