this linkからTripPriceService.wsdlを取るローカルフォルダに保存されている前述のwsdlファイルからwsdlを与えることによって、サービス参照(ServiceReference1)をWindowsアプリケーションに追加します。私の質問には2つの部分があります私のsoapclientで例外をキャッチ
1)以下のフォールトメッセージは、wsdl(TripPriceServiceException)のような有効なSOAPエラーですか?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:trip="http://trip.price.service">
<soapenv:Header/>
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:client</faultcode>
<faultstring>error</faultstring>
<detail>
<trip:TripPriceServiceException/>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
2)レスポンスが石鹸の場合、詳細タグを処理してキャッチする方法:フォルト?
Imports windowsapp1.ServiceReference1
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim obj As New ServiceReference1.TripPriceServiceFacadeClient
Dim abc As New ServiceReference1.trip
Dim a As Single
Dim d As ServiceReference1.TripPriceServiceException
a = obj.getTripPrice(abc)
End Sub
End Class
行obj.getTripPriceは、サービスを呼び出します。しかし、レスポンスが(TripPriceServiceException型の)SOAPエラーであれば、例外がスローされますか?そのようなケースを処理するには、ServiceReference1.TripPriceServiceExceptionを使用する必要がありますか?私は現在この状況を説明するためにwsdlを使用しました。私たちは、Webサービスクライアントでこのような障害を処理する必要があります。
こんにちはjohnは、TrpPriceServiceExcetionに有効なsoap fault xmlです。なぜ私が求めているのは、有効なxmlがsoap faultの詳細タグの下に来るからです。しかし、TripPriceServiceException型の場合、trip:TripPriceServiceException要素は詳細タグの下に来ることができます(私がundertsnadの範囲で) – Suresh
これは有効です。あなたは正しいのですが、その要素(内容のないもの)だけがその欠陥のために現れることができます。これは 'FaultException'に変換する必要があります。こんにちはJohn。 –
「メッセージ=サーバーがプロトコル違反をコミットしました」セクション= ResponseHeader詳細= CRの後にLFを指定する必要があります。このエラーは、Webサービスをテストするために開発したサンプルのWebサービスクライアントで発生します。 useUnsafeHeaderParsing = "true"を追加すると、それが実行されることがわかります。しかし、私たちはサービスプロバイダーであり、なぜクライアントがこのエラーを受け取っているのかわかりません。私は石鹸の欠陥を生成するためにXSLT、XML変換を使用します。応答は、データパワーアプライアンスから発生します。 – Suresh