テスト用にセットアップしたコンソール アプリケーションから Java Web サービスを呼び出すサービス リファレンス (WCF クライアント) をセットアップしました。HTTPS を使用しています。私は Fiddler をセットアップしており、(Fiddler で) サービスから適切な値が送信および返されていることを確認できます。しかし、どのメソッドを呼び出しても、返される値は、文字列かオブジェクトかに関係なく、Null として返されます。
プロキシ クライアント マッピングが機能していないのか、それとも app.config の構成値を変更する必要があるのかわかりません。
app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="ResultsSOAP12Binding">
<textMessageEncoding messageVersion="Soap12" />
</binding>
<binding name="ResultsSOAP12Binding1">
<textMessageEncoding messageVersion="Soap12" />
<httpsTransport />
</binding>
<binding name="ResultsSOAP12Binding2">
<textMessageEncoding messageVersion="Soap12" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://services.acme.com/results"
binding="customBinding" bindingConfiguration="ResultsSOAP12Binding1"
contract="ResultsServiceReference.Result
</client>
</system.serviceModel>
</configuration>
コード:
static void CallResults()
{
var resultsRequest = new ResultsServiceReference.ResultsRequest();
var client = new ResultsServiceReference.ResultsPortTypeClient("ResultsSOAP12BindingQSPort");
Console.WriteLine("Call Results Service");
ResultsServiceReference.ResultsBatch result = client.latestResults(resultsRequest);
Console.WriteLine(result.Status);
Console.ReadLine();
}
このコードでは、変数resultは null ですが、Fiddler を見ると XML が表示されます。結果を使用しようとするまで、エラーは表示されません。
ところで、プロキシ クラス reference.cs の latestResults メソッド内にブレークポイントを設定しようとしましたが、デバッガーはそれに到達しません。