Saber SOAP调用返回空字符串

时间:2014-09-23 04:33:39

标签: java web-services soap sabre

拥有一个之前正在运行的Java Web服务,上周突然爆发了。

请求的版本尚未永久更新,版本为1.2.7,当前版本为1.7.5,因此我不确定是否存在问题。我已经通过代码调试,HTTP头,createSessionRQ以及其他所有工作正常,但是Bargain Finder Max调用在解析时最终会抛出SAXException java.io.IOException: '' For input string: ""。一旦我尝试在第一次传递时解析传入消息,就会发生这种情况。所有其他响应都被解析得很好。解析代码全部来自apache axis 1库。示例XML如下。再次,这一直持续到上周。

    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <SOAP-ENV:Header>
      <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
       <eb:From>
        <eb:PartyId type="urn:x12.org:IO5:01">company</eb:PartyId>
       </eb:From>
       <eb:To>
        <eb:PartyId type="urn:x12.org:IO5:01">webservices.sabre.com</eb:PartyId>
       </eb:To>
       <eb:CPAId>0WPB</eb:CPAId>
       <eb:ConversationId>convoid</eb:ConversationId>
       <eb:Service eb:type="OTA">Air Shopping Service</eb:Service>
       <eb:Action>BargainFinderMaxRQ</eb:Action>
       <eb:MessageData>
        <eb:MessageId>mid:0_2014-09-22T21:43:40m</eb:MessageId>
        <eb:Timestamp>2014-09-22T21:43:40</eb:Timestamp>
        <eb:TimeToLive>2014-09-22T21:43:40</eb:TimeToLive>
       </eb:MessageData>
       <eb:DuplicateElimination/>
       <eb:Description>Bargain Finder Max Service</eb:Description>
      </eb:MessageHeader>
      <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility">
       <wsse:BinarySecurityToken>tokenhere</wsse:BinarySecurityToken>
      </wsse:Security>
     </SOAP-ENV:Header>
     <SOAP-ENV:Body>
      <ns1:OTA_AirLowFareSearchRQ Version="1.2.7" xmlns:ns1="http://www.opentravel.org/OTA/2003/05">
          <ns1:POS>
          <ns1:Source PseudoCityCode="0WPB">
          <ns1:RequestorID ID="1" Type="1">
      <n

s1:CompanyName Code="TN">TN</ns1:CompanyName>

</ns1:RequestorID>

</ns1:Source>

</ns1:POS>

      <ns1:OriginDestinationInformation RPH="1">
  <ns1:DepartureDateTime>2014-10-31T00:00:00</ns1:DepartureDateTime>

  <ns1:OriginLocation LocationCode="BWI"/>

  <ns1:DestinationLocation LocationCode="MBJ"/>

      <ns1:TPA_Extensions>
  <ns1:SegmentType Code="O"/>

</ns1:TPA_Extensions>

</ns1:OriginDestinationInformation>

      <ns1:OriginDestinationInformation RPH="2">
  <ns1:DepartureDateTime>2014-11-03T00:00:00</ns1:DepartureDateTime>

  <ns1:OriginLocation LocationCode="MBJ"/>

  <ns1:DestinationLocation LocationCode="BWI"/>

      <ns1:TPA_Extensions>
  <ns1:SegmentType Code="O"/>

</ns1:TPA_Extensions>

</ns1:OriginDestinationInformation>

      <ns1:TravelPreferences>
  <ns1:CabinPref Cabin="Y" PreferLevel="Preferred"/>

      <ns1:TPA_Extensions>
  <ns1:TripType Value="Return"/>

</ns1:TPA_Extensions>

</ns1:TravelPreferences>

      <ns1:TravelerInfoSummary>
  <ns1:SeatsRequested>1</ns1:SeatsRequested>

  <ns1:AirTravelerAvail>
  <ns1:PassengerTypeQuantity Code="ADT" Quantity="2"/>



</ns1:AirTravelerAvail>

</ns1:TravelerInfoSummary>

      <ns1:TPA_Extensions>
      <ns1:IntelliSellTransaction>
  <ns1:RequestType Name="50ITINS"/>

</ns1:IntelliSellTransaction>

</ns1:TPA_Extensions>

</ns1:OTA_AirLowFareSearchRQ>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

1 个答案:

答案 0 :(得分:0)

这是Axis 1问题,您可以升级到第2轴或执行以下修改:

应更改为:

CommonHTTPsender是HTTPSender的改进版本。

希望这些信息有用。