1

Java で記述され、いくつかの Web サービスを提供するサーバーがあります...それらのいくつかは、サーバーがユーザー アプリケーションに送信するカスタム例外をスローします。

アプリケーションは C# で記述されています。ユーザー アプリケーションでこれらの例外をキャッチして、再度スローできるようにしたいと考えています。

一般的な SOAP 例外をスローできることはわかっていますが、サーバーと同じ種類の例外をスローしたいと考えています。

サービス用の wsdl ファイルと xsd ファイルを生成する方法を知っています。これらの例外についても説明されています。xsd.exe を使用する場合、例外に似た ac# クラスを生成する方法を知っていますが、例外ではありません :(

そのため、代わりに例外を生成する方法と、ソープ障害コードを正しいタイプの例外として解釈する方法がわかりません...

石鹸の障害コードの例:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>some info</faultcode>
         <faultstring>Fault occurred while processing.</faultstring>
         <detail>
            <ns1:MyException xmlns:ns1="http://xxx/">
               <den xsi:type="ns2:day" xmlns:ns2="http://xxx/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">THURSDAY</den>
            </ns1:MyException>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

何か案は?前にこんなことしてたっけ…?それは可能ですか?ありがとう

4

1 に答える 1

0

最後に私はそれを解決しました。Java では、webservice メソッドの後に throw MyException を記述するだけです。次に、wsdl と xsd を生成します。wsdl と xsd から、svcutils.exe によって C# コードを生成します。

Web サービスを使用して、次のような障害をキャッチできます。

FaultException<MyException> ex

ex には MyException のすべてのプロパティが詳細に含まれます。

于 2013-11-21T08:25:36.597 に答える