2016-05-19 23 views
-2

私の開発環境でsoapui経由でwcf rest sericeをテストしようとしていますが、サービスはヒットしていますが、パラメータは常にnull値を受け取ります。WCF RestサービスはSOAPUIからnull値を受け取ります

POSTメソッドを使用してSOAPUIから文字列xmlを渡していますが、XMLDataメソッドのxmlString引数に常にnullが返されます。SOAPUIではさまざまな組み合わせが試されましたが、null値が返されます。

私の意図は、イントラネット内の別のサービスにxmlパラメータを送信することです。

ここに私のサービス・インターフェース

[ServiceContract] 
public interface IPayGService 
{ 
    [OperationContract] 
     [WebInvoke(Method="POST",RequestFormat=WebMessageFormat.Xml,ResponseFormat=WebMessageFormat.Xml,BodyStyle=WebMessageBodyStyle.Bare,UriTemplate="XMLData")] 
    void XMLData(string xmlString); 
} 

はここで上記のサービス契約の実装

public class PayGService : IPayGService 
{ 
    public void XMLData(string xmlString) 
    { 
     HttpWebRequest request =  (HttpWebRequest)WebRequest.Create("http://10.77.146.113:8081/PAGUIManager/rest/response"); 
     byte[] bytes; 
     bytes = System.Text.Encoding.ASCII.GetBytes(xmlString); 
     request.ContentType = "text/xml; encoding='utf-8'"; 
     request.ContentLength = bytes.Length; 
     request.Method = "POST"; 
     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(bytes, 0, bytes.Length); 
     requestStream.Close(); 
     HttpWebResponse response; 
     response = (HttpWebResponse)request.GetResponse(); 
     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      Stream responseStream = response.GetResponseStream(); 
      string responseStr = new  StreamReader(responseStream).ReadToEnd(); 
     } 
    } 
} 


Here's what I'm trying to post from SOAP UI "<![CDATA[<response> <requestType>CC</requestType><pagTransId>CSS1234</pagTransId> <pgTransId>PG12345</pgTransId><amount>1200</amount><Status>SUCCESS</Status>  <message>Payment Successful</message><MSISDIN>8888853991</MSISDIN><bankRef>123bank</bankRef> <bankCode>123</bankCode><checkSum>%%%%%%%^^^^&&& </checkSum> <cartInfo>8888853991:001:100</cartInfo></response>]]" 

Here's the SOAPUI Snapshot

+0

あなたは 'SoapUI'から何を投稿していますか? – user1429080

+0

質問に編集し、コメントを削除します。 – user1429080

答えて

0

このソリューションはあなたを助けることを願っています:トンで

リクエストプロパティパネルにオプションの最大サイズがあります。これを設定すると、1048576(1MB)となり、SoapUIはメモリに1MBを超える結果をロードしません。

同じパネル内のダンプファイルプロパティでこれを使用すると、ファイルへの完全な応答を簡単にダンプすることができ、メモリ使用を避けることができます。

+0

MaxSizeプロパティを設定しようとしましたが、まだ動作していません。 – Yogesh

0

おそらく問題はサービス自体ではなく、SoapUIが送信している可能性があります。

あなたの質問と同じOperationContractで小テストサービスを行いました。次に、私はSoapUIにプロジェクトを作成してテストします。 SoapUIからそれを送信するときに、この生のXMLは動作します:

<soapenv:Envelope 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:tem="http://tempuri.org/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <tem:XMLData> 
     <tem:xmlString><![CDATA[<response> <requestType>CC</requestType><pagTransId>CSS1234</pagTransId> <pgTransId>PG12345</pgTransId><amount>1200</amount><Status>SUCCESS</Status>  <message>Payment Successful</message><MSISDIN>8888853991</MSISDIN><bankRef>123bank</bankRef> <bankCode>123</bankCode><checkSum>%%%%%%%^^^^&&& </checkSum> <cartInfo>8888853991:001:100</cartInfo></response>]]></tem:xmlString> 
     </tem:XMLData> 
    </soapenv:Body> 
</soapenv:Envelope> 

マイSoapUIはあなたよりも古いバージョンであるので、私はあなたが生のXMLをテストする必要があります正確にどこか分かりません。しかし、あなたのスクリーンショットにはRawというタブが表示されていました。 tem名前空間を、サービス上の名前空間と一致するように変更する必要があります。

+0

私はあなたが言った解決策を試してみましたが、解決法は私のために働いていませんでした。生のXMLはサービスメソッド "XMLData"を通過できません。最初はパラメータを文字列として渡そうとしていましたが、ソリューションを実装するためにクラスを作成して名前空間を指定しましたが、デバッグでコードにヒットしたときにパラメータにnull値が残っていました。 – Yogesh

関連する問題