2012-02-24 2 views
0

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サービスクライアントでこのような障害を処理する必要があります。

答えて

0

多分私はあなたの質問を理解していません。 Try/Catch/End Tryブロックを使用せずにTripPriceServiceExceptionを捕捉するのはなぜですか?

+0

こんにちはjohnは、TrpPriceServiceExcetionに有効なsoap fault xmlです。なぜ私が求めているのは、有効なxmlがsoap faultの詳細タグの下に来るからです。しかし、TripPriceServiceException型の場合、trip:TripPriceServiceException要素は詳細タグの下に来ることができます(私がundertsnadの範囲で) – Suresh

+1

これは有効です。あなたは正しいのですが、その要素(内容のないもの)だけがその欠陥のために現れることができます。これは 'FaultException 'に変換する必要があります。こんにちはJohn。 –

+0

「メッセージ=サーバーがプロトコル違反をコミットしました」セクション= ResponseHeader詳細= CRの後にLFを指定する必要があります。このエラーは、Webサービスをテストするために開発したサンプルのWebサービスクライアントで発生します。 useUnsafeHeaderParsing = "true"を追加すると、それが実行されることがわかります。しかし、私たちはサービスプロバイダーであり、なぜクライアントがこのエラーを受け取っているのかわかりません。私は石鹸の欠陥を生成するためにXSLT、XML変換を使用します。応答は、データパワーアプライアンスから発生します。 – Suresh