0

外部 Web サービスに接続しようとしていますが、それを制御できません。wsdl には未解決の URL がいくつかあります。Soap UI も svcutil もそれを利用することはできませんでした。そこで、この wsdl を参照し、xml ドキュメントに「名前を付けて保存」を実行しました。次に、これらのいくつかを正しいものに手動で変更しました。

例: https://b2borexatest.oracleoutsourcing.com/soa-infra/services/default/MMISSOAPRequestReceiver!1.0 *soa_d48cf4e0-5e7b-43ad-b430-727180d48841/RouteEDITtransactions_ep?WSDL。T これは、指定された元の Web サービス Wsdl です。そして、それを https://orserviceb2btest.oracleoutsourcing.com/soa-infra/services/default/MMISSOAPRequestReceiver!1.0/CORERule220.wsdlに変更しました

2 番目の URL を参照することはできますが、まだ古い URL の「b2b....」の痕跡がいくつか含まれているため、これらの痕跡を手動で変更して、正しいものに反映させました。そうすることで、svcutil を使用してプロキシを作成できました。

質問: これが、Web サービス プロキシが null SOAP UI 要求を返す理由として考えられるものでしょうか?

<soapenv:Envelope xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
      <cor:COREEnvelopeRealTimeRequest>
         <PayloadType>123</PayloadType>
         <ProcessingMode>XXX</ProcessingMode>
         <PayloadID>72</PayloadID>
         <TimeStamp>2013-07-13:T23:30:29:45</TimeStamp>
         <SenderID>MID</SenderID>
         <ReceiverID>OID</ReceiverID>
         <CORERuleVersion>2.2.0</CORERuleVersion>
         <Payload>MY Input string</Payload>
      </cor:COREEnvelopeRealTimeRequest>
   </soapenv:Body>


This is the working SOAP UI response
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Body>
      <COREEnvelopeRealTimeResponse xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" xmlns="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
         <cor:PayloadType>XXX</cor:PayloadType>
         <cor:ProcessingMode>23</cor:ProcessingMode>
         <cor:PayloadID>372</cor:PayloadID>
         <cor:TimeStamp>2013-08-04T23:38:32.083-05:00</cor:TimeStamp>
         <cor:SenderID>OID</cor:SenderID>
         <cor:ReceiverID>RID</cor:ReceiverID>
         <cor:CORERuleVersion>2.2.0</cor:CORERuleVersion>
         <cor:Payload>Response String</cor:Payload>
         <cor:ErrorCode>Success</cor:ErrorCode>
         <cor:ErrorMessage></cor:ErrorMessage>
      </COREEnvelopeRealTimeResponse>
   </env:Body>

リクエスト/レスポンスに競合は見られません これらは wsdl の関連部分です

    <?xml version='1.0' encoding='UTF-8'?>
    <wsdl:definitions xmlns:CORE="http://www.caqh.org/SOAP/WSDL/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:CORE-XSD="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" xmlns="http://schemas.xmlsoap.org/wsdl/" name="CORE" targetNamespace="http://www.caqh.org/SOAP/WSDL/">
       <wsdl:types>
          <xsd:schema xmlns="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified" targetNamespace="http://www.caqh.org/SOAP/WSDL/">
             <xsd:import namespace="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" schemaLocation="xsd/CORERule2.2.0.xsd"></xsd:import>
          </xsd:schema>
       </wsdl:types>
       <wsdl:message name="RealTimeRequestMessage">
          <wsdl:part name="body" element="CORE-XSD:COREEnvelopeRealTimeRequest"></wsdl:part>
       </wsdl:message>
       <wsdl:message name="RealTimeResponseMessage">
          <wsdl:part name="body" element="CORE-XSD:COREEnvelopeRealTimeResponse"></wsdl:part>
       </wsdl:message>



 <wsdl:portType name="CORETransactions">
      <wsdl:operation name="RealTimeTransaction">
         <wsdl:input message="CORE:RealTimeRequestMessage"></wsdl:input>
         <wsdl:output message="CORE:RealTimeResponseMessage"></wsdl:output>
 </wsdl:operation>
   </wsdl:portType>

 <wsdl:binding name="CoreSoapBinding" type="CORE:CORETransactions">
      <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap12:binding>
      <wsdl:operation name="RealTimeTransaction">
         <soap12:operation soapAction="RealTimeTransaction" style="document"></soap12:operation>
         <wsdl:input>
            <soap12:body use="literal"></soap12:body>
         </wsdl:input>
         <wsdl:output>
            <soap12:body use="literal"></soap12:body>
         </wsdl:output>
      </wsdl:operation>

Fiddler は正しい応答をキャプチャしますが、プロキシ クラスがそれを失う可能性がある場所はわかりません。

これは、プロキシ クライアント クラスを使用してサービス メソッドを呼び出す場所の一部です。

var ORrealTimeTrans = new COREEnvelopeRealTimeRequest() { PayloadType = "blabla", ProcessingMode = bla, PayloadID = bla, CORERuleVersion = bla, SenderID = sid, ReceiverID =rid, TimeStamp = DateTime.UtcNow.ToString("yyyy-MM-ddThh:mm :22Z")、ペイロード = 入力};

    _ORclient.ClientCredentials.UserName.UserName = UserID;
    _ORclient.ClientCredentials.UserName.Password = Password;

    var resp = _ORclient.RealTimeTransaction(ORrealTimeTrans);

これは 1 つの _ORclient.RealTimeTransaction(ORrealTimeTrans) が null になります。

b2b のいくつかのオカレンスを orservice に変更し、このプロキシが null を返す可能性はありますか? 提案してください

4

0 に答える 0