有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

返回空字符串的java Sabre SOAP调用

有一个Java Web服务,它以前是工作的,但上周突然坏了

请求的版本没有永远更新,它在版本1.2.7上,当前版本是1.7.5,所以我不确定这是否是问题所在。我已经对代码进行了调试,HTTP头、createSessionRQ和其他一切都可以正常工作,但是在解析时,讨价还价查找器Max调用最终抛出SAXException,java.io.IOException: '' For input string: ""。当我第一次尝试解析传入消息时,就会发生这种情况。所有其他响应都可以很好地解析。解析代码都来自ApacheAxis1库。下面是示例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) 个答案

  1. # 1 楼答案

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

    应改为:

    CommonHTTPsender是HTTPSender的改进版本

    希望这些信息有帮助