我目前正在研究一個需要使用Java web服務的項目。如果我使用舊的webservices(asmx)連接到服務,它可以正常工作。但是,如果我嘗試使用WCF客戶端執行同樣的操作,則會出現以下錯誤:消費Java服務時WCF客戶端錯誤
內容類型text/xml;響應消息的charset = utf-8與綁定的內容類型(application/soap + xml; charset = utf-8)不匹配。如果使用自定義編碼器,請確保IsContentTypeSupported方法正確實施。
我是非常簡單的,它看起來像下面這樣:
//classic web service
OldSkoolService.HelloService serviceCall = new esb_wsdlsample.OldSkoolService.HelloService();
Console.WriteLine(serviceCall.SoapVersion);
Console.WriteLine(serviceCall.sayHello("something"));
HelloServiceClient prototypeClient = new HelloServiceClient();
var serviceChannel = prototypeClient.ChannelFactory;
Console.WriteLine(serviceChannel.Endpoint.Binding.MessageVersion);
Console.WriteLine(prototypeClient.sayHello("somethinge")); //<-- Error occurs here
的綁定/端點配置文件是相當簡單的,以及:
<bindings>
<customBinding>
<binding name="Soap12Binding">
<textMessageEncoding messageVersion="Soap12"/>
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://10.10.6.51:7001/esb/HelloService" behaviorConfiguration=""
binding="customBinding" bindingConfiguration="Soap12Binding" contract="Prototype.ESB.HelloService"
name="HelloServicePort" />
</client>
作爲一個方面說明我正在努力使用soap 1.2,因爲我需要能夠從服務中捕獲異常。