1

これは、私が接続しようとしている Web サービスの URL であり、その中でいくつかの操作を使用します。使用する操作は RealTimeTransaction です。このメソッドは、入力 Corerealtimerequest オブジェクトを受け取り、CoreRealtimeResposne オブジェクトを返します。すべては順調です。Web サービスは、Fiddler がキャプチャできる SOAP 応答を返しますが、プロキシは null を返します。

https://orserviceb2btest.oracleoutsourcing.com/soa-infra/services/default/MMISSOAPRequestReceiver!1.0*soa_d48cf4e0-5e7b-43ad-b430-727180d48841/RouteEDITtransactions_ep?WSDL

この wsdl には未解決のリンクが多数含まれています。すべての b2borexatest を orseviceb2btest に変更すると、wsdl 参照が解決されます。サービス URL に b2borexatest への合計 4 つの参照があります。そうすることで、svcutil を使用してプロキシ クラスを作成できました。

https://b2borexatest.oracleoutsourcing.com/soa-infra/services/default/MMISSOAPRequestReceiver!1.0/CORERule220.wsdl 
to
 https://orserviceb2btest.oracleoutsourcing.com/soa-infra/services/default/MMISSOAPRequestReceiver!1.0/CORERule220.wsdl

これは、これらのオブジェクトが wsdl でどのように定義されているかです。

<types>-<xsd:schema xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.caqh.org/SOAP/WSDL/" elementFormDefault="qualified">
<xsd:import schemaLocation="https://b2borexatest.oracleoutsourcing.com:443/soa-infra/services/default/MMISSOAPRequestReceiver!1.0*soa_d48cf4e0-5e7b-43ad-b430-727180d48841/RouteEDITransactions_ep?XSD=xsd/CORERule2.2.0.xsd" namespace="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd"/>
    </xsd:schema>
    </types>-<message name="RealTimeRequestMessage">
    <part name="body" element="CORE-XSD:COREEnvelopeRealTimeRequest"/>
    </message>
    <message name="RealTimeResponseMessage">
    <part name="body" element="CORE-XSD:COREEnvelopeRealTimeResponse"/>
    </message>

これは石鹸の一部です:Fiddlerリクエストのボディは次のようになります

`<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<COREEnvelopeRealTimeRequest xmlns="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<PayloadType xmlns="">X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode xmlns="">RealTime</ProcessingMode><PayloadID xmlns="">461726944</PayloadID>
<TimeStamp xmlns="">2013-07-23T07:35:22Z</TimeStamp>
<SenderID xmlns="">SID</SenderID>
<ReceiverID xmlns="">RID</ReceiverID>
<CORERuleVersion xmlns="">`

Soap UI または Fiddler からの応答。COreRealtimResponse に関心のあるオブジェクト。プロキシを使用してサービス メソッドを呼び出す場合、これは null です。

      HTTP/1.1 200 OK
        Date: Fri, 19 Jul 2013 21:10:32 GMT
        Server: Oracle-Application-Server-11g
        Content-Length: 3030
        Set-Cookie: JSESSIONID=; expires=Thu, 01-Jan-1970 01:00:00 GMT; path=/; HttpOnly
        Set-Cookie: _WL_AUTHCOOKIE_JSESSIONID=; expires=Thu, 01-Jan-1970 01:00:00 GMT; path=/; secure; HttpOnly
        X-ORACLE-DMS-ECID: 004sUF1pzHw9PdyN06aAUF00037x000S4e
        SOAPAction: ""
        X-Powered-By: Servlet/2.5 JSP/2.1
        Keep-Alive: timeout=5, max=100
        Connection: Keep-Alive
        Content-Type: multipart/related;type="application/xop+xml";boundary="----=_Part_52_444854407.1374268236586";start="<283134dc77544061b8c4d5788ee9bd44>";start-info="text/xml"
        Content-Language: en

        ------=_Part_52_444854407.1374268236586
        Content-Type: application/xop+xml;charset=UTF-8;type="text/xml"
        Content-Transfer-Encoding: 8bit
        Content-ID: <283134dc77544061b8c4d5788ee9bd44>

        <?xml version="1.0" encoding="UTF-8" ?>
      <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" <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>X12_271_Response_005010X279A1</cor:PayloadType><cor:ProcessingMode>RealTime</cor:ProcessingMode>
    <cor:PayloadID>339408072</cor:PayloadID>
    <cor:TimeStamp>2013-07-19T16:10:36.517-05:00</cor:TimeStamp>
    <cor:SenderID>SID</cor:SenderID>
    <cor:ReceiverID>RECID</cor:ReceiverID>
    <cor:CORERuleVersion>2.2.0</cor:CORERuleVersion>
    <cor:Payload>ISA*00*          *00*          ~</cor:Payload>
    <cor:ErrorCode>Successful</cor:ErrorCode>
    <cor:ErrorMessage>Envelope was processed successfully</cor:ErrorMessage>
</COREEnvelopeRealTimeResponse>
</env:Body>
</env:Envelope>
        ------=_Part_52_444854407.1374268236586--

コード:

 var ORrealTimeTrans = new ORMCDProxy.COREEnvelopeRealTimeRequest()
            {
                PayloadType = "X12_270_Request_005010X279A1",
                ProcessingMode = procMode,
                PayloadID = InterchangeControlNumber,
                CORERuleVersion = ruleVersion,
                SenderID = senderId,
                ReceiverID = receiverId,
                TimeStamp = DateTime.UtcNow.ToString("yyyy-MM-ddThh:mm:22Z"),
                Payload = Query270
            };

 ORMCDProxy.COREEnvelopeRealTimeResponse resp = ORMCDProxy.RealTimeTransaction(ORrealTimeTrans);

この resp オブジェクトは null です。

http://webservices20.blogspot.com/2008/10/interoperability-gotcha-visual-studio.htmlでは、サービス参照の代わりに Web 参照を追加することで問題と解決策が示されています。

しかし、サービス wsdl には未解決のリンクがあり、私はそれを制御できないため、これは私にとって選択肢ではありません。

4

0 に答える 0