0

私は、Web サービスと WSDL についてはまったくの初心者です。

私がやりたいことは、顧客の SOAP メッセージを読み取って処理する Web サービスを構築することです。

私に送信された SOAP メッセージは次のとおりです (SOAP メッセージを削除したことに注意してください)。

<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
 <soap2:Header>
  <wsa:Action>http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest</wsa:Action> 
  <wsa:ReplyTo>
   <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> 
  </wsa:ReplyTo>
 </soap2:Header>
 <Body>
  <OTA_HotelResNotifRQ>
   <POS>
     //More tags
   </POS>
   <HotelReservations>
    <HotelReservation RoomStayReservation="true">
     <UniqueID Type="14" ID="59071IC000041" /> 
    </HotelReservation>
   </HotelReservations>
  </OTA_HotelResNotifRQ>
 </Body>
</Envelope>

これは私の Web サービス asmx です (ここでも、すぐに切り詰めました)。

[WebMethod]
[SoapDocumentMethodAttribute("http://htng.org/PWSWG/2010/12/ReservationSynch_SubmitRequest", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]

public OTA_HotelResNotifRS ReservationSynch_SubmitRequest(OTA_HotelResNotifRQ OTA_HotelResNotifRQ)
{

}

問題: メッセージが着信すると、メソッド ReservationSynch_SubmitRequest が起動されますが、OTA_HotelResNotifRQ は null です。顧客は私に WSDL を提供してくれました。私が知る限り、クラスは正しいです。<Body>タグは気にならない程度ですが、新品ではありません<soap2:Body>。これは違いがありますか?

顧客のメッセージを変更することはできません。Web サービスを変更して、顧客が私に送ったものを読むことしかできません。asmx に何か足りないものがありますか?

興味がある場合は、WSDL https://interface.synxis.com/interface/ota2010av2/OTA2010A.svc.wsdlをご覧ください。

4

1 に答える 1

0

問題を発見!

いくつかのクラスの名前空間を変更しましたが、これは WSDL のスキーマ ファイルに影響を与えました。

于 2013-06-07T14:48:47.487 に答える