問題タブ [soapfault]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAX-WS Webサービスでカスタム障害をスローする方法は?
JAX-WS Webサービスでカスタムsoap障害をどのようにスローしますか?faultCode、faultStringおよびdetail石鹸の障害を特定するにはどうすればよいですか?detailの代わりにBeanの値を設定することは可能Stringですか?
私はコードファーストアプローチを使用して開発していることに注意してください。
wcf - 状況によっては、WCF SoapFault応答が暗号化されるのはなぜですか?
要求/応答のみが署名されることになっているWCFWebサービスを作成しています。このために、ServiceContract属性に設定しました
それは大丈夫です。
要件により、一部のSoapFaultはサービスからスローされることになっています。2種類のSoapFaults:
- アプリケーションに関連する
- WS-Addressingに関連します(例:MessageIDがありません)
このために、私はSoafFaultsを処理する通常のアプローチを使用しています。MessageFault.CreateFaultを使用してMessageインスタンスが作成されるIErrorHandlerを作成します。
返されたほとんどすべてのSoapFaultは暗号化されていません(これは私にとっては問題ありません)。私の質問は、action ="http://www.w3.org/2005/08/addressing/fault"または" http:// www.w3.org/2005/08/addressing/soap/fault "は暗号化されていますか?
java - SOAPFaultException.getFault().getDetail() が null です
JAX WS 2.0 を使用して SOAP Web サービスを呼び出しています。エラーの場合、次の応答が返されます。
ご覧のとおり、有用なエラーは詳細ノードにあります。
私のクライアントでは、SOAPFault オブジェクトを持つ SOAPFaultException を取得しています。SOAPFault オブジェクトには、上に投稿したノードがないようです。SOAPFaultException.getFault().getDetail() が null です。ただし、soap:Reason を含む他のすべてのノードがあります。詳細ノードが欠落している理由は何ですか?
ありがとう。
wcf - WCF は WS-Addressing Soap Faults の標準を本当に尊重していますか?
Web Services Addressing 1.0 - SOAP Bindingで指定されているPredefined Faultsが WCF で処理されるかどうかに興味があります。
たとえば、アクションが一致しない場合、「wsa:ActionMismatch」SoapFault で応答しますか (標準では 6.4.1.6 wsa:ActionMismatch で指定されています)。または、欠落している ws-addressing ヘッダー (6.4.2 Message Addressing Header Required で標準で指定されている) に対して subcode="wsa:MessageAddressingHeaderRequired" の SoapFault で応答しますか?
これらの標準に基づいて、そのような SoapFault は次のようになります。
このような SoapFault メッセージで応答するには、どのような構成を行う必要があるか知りたいです。
xml - 致命的なエラー:キャッチされないSoapFault例外:[HTTP]httpヘッダーのフェッチ中にエラーが発生しました
XMLを使用して「HelloWorld」を出力しようとしていますが、phpページで次の例外が発生します。
致命的なエラー:キャッチされないSoapFault例外:[HTTP] C:\ wamp \ www \ Web_Service \ SampleXML \ index.php:4スタックトレースのhttpヘッダーのフェッチエラー:
#0 [内部関数]:SoapClient-> _ doRequest('<? xml version = "...'、' http:// localhos ...'、' urn:localhost-s ...'、1、0)
#1 [内部関数]:SoapClient-> _call(' getHelloWorld ' 、Array)
#2 C:\ wamp \ www \ Web_Service \ SampleXML \ index.php(4):SoapClient-> getHelloWorld()
#3 {main}がC:\ wamp \ www \ Web_Service \ SampleXML\index.phpにスローされます4行目
index.php
service.wsld
soap-server.php
コードに何かが足りませんでしたか?
asp.net - WCF SOAP エラーの型が正しくありません
まず、私の設定は次のとおりです。
- .Net 4.0 ASP.Net アプリケーション
- basicHttpBinding (soap 1.1) を使用した WCF サービス
- 参照クラスは、オプション /useSerializerForFaults; を指定して svcutil を使用して生成されました。WSDL はすべての操作を定義し、types.xsd および types_fault.xsd ファイルへのリンクを提供します。参考までに、WSD ファイルと XSD ファイルは多くのアプリケーションで共通であるため、変更することはできません (もちろん、重大な検証エラーがない限り)。
SOAP エラーをクライアントに送信すると、問題が発生します。エラーの詳細について、コード内の正しいタイプにアクセスできないため、クライアントはこのエラーを処理できません。
以下は、理解を深めるための WSDL の抜粋です。
したがって、たとえば、Responseを返信する(エラーは発生していない) 場合、CreateScheduledWorkResponse要素を使用して正しく入力できます。しかし、FaultExceptionが発生した場合、CreateScheduledWorkFaultMessage を返すことしかできません ( CreateScheduledWorkFaultを返すことはできません)。そして、クライアントはこのタグを処理できません...
つまり、CreateScheduledWorkFault 型はコードで使用できません。
--> svcutil を使用して WSDL および XSD からコードを生成するときに、コード内の目的の型にアクセスできないため、何か問題があると思われます。
私はこのようにsvcutilを使用します:
svcutil /useSerializerForFaults CSW.wsdl CSW.xsd CSW_Fault.xsd
ご協力いただきありがとうございます。詳細が必要な場合は、お気軽にお問い合わせください。
ボリス
wcf - IErrorHandler インターフェイスがわかりにくい
IErrorHandler と IServiceBehavior を実装するクラスを作成しました。この動作を ServiceHost に追加して実行します。
私が IErrorHandler について学ぼうとした理由は、コールバック チャネルとやり取りするすべてのサービス コードを try catch ステートメントでラップする必要があり、例外をキャッチするグローバルな方法があるかどうか疑問に思ったからです。
ここ StackOverflow で読んだことから、それがまさに私が欲しいものであることがわかりました。
しかし、実行中、それは私を大いに混乱させます。次のことを行うコントラクトメソッドがある場合...
クライアントが私のサーバーにいて、彼が地球の表面から落ちてチャネルに障害が発生した場合、サーバーがチャネルに障害があることに気付くまでにしばらく時間がかかるようです. ICommunicationObject のイベントにサブスクライブしていても、サーバーがチャネルに障害があることを認識するまでに時間がかかるようです。たとえば、誰かがメッセージを送信していて、誰かが切断し、同時にメッセージが伝播されているとします。
さて、基本的に定期的にクライアントに ping を送信して、クライアントがまだ存在するかどうかを確認する別の方法があるので、クライアントをuserChannel辞書から削除できます。
ここで IErrorHandler はどのくらい正確に私を助けてくれるのでしょうか? エラーをキャッチしたとしても、サービスがクラッシュするのを正確に助けているわけではないようです。私のサービスはクライアントに非常に速いペースで ping を送信できないため、例外をスローした前のメッセージの直後に (私はこれをテストしていました)、メッセージが届くことがあります。最初のものは処理されたように見えましたが、2 番目のものはキャッチされなかった別の例外をスローし、サーバーが障害のあるチャネルと通信しようとしたため、サービスがクラッシュしました。現在、私のサービスは障害のあるチャネルをクリーンアップしますが、定期的にクリーンアップします。
IErrorHandler を実装することで、すべてのメソッドを try{}catch{} ブロックでラップする必要がなくなることを期待していましたが、障害のあるチャネルと通信しているかどうかを確認するために、まだ必要なようです。
あるいは、IErrorHandler を不適切に使用して、本来すべきではないことを行うべきだと考えているだけかもしれません。サービスにそれを実装させ、それ自体を IServiceBehavior として Servicehost に挿入する必要がありますか? そして、HandleError() メソッドで、クライアントのリストからチャネルを削除しますか? サービス クラスに WCF 配管要素を配置しているため、これはややこしいように思えますが、例外コード自体にコールバックのリストからチャネルを削除させるには、これしか考えられません。
私はそれが初めてなので、たくさんの読書をしようとしていますが、WCF のエラー処理の世界は気が遠くなるような気がします。
Faulted イベントをサブスクライブしてサービスで呼び出されないようにチャネルを削除しようとしても、十分な速度で動作せず、IErrorHandler を使用してもサーバーが回復できないように見える例外がスローされます。
たとえば、ユーザーが最初に接続したときに、イベントをサブスクライブします。
すべてのメソッドにアクセスして、チャネルが閉じているかエラーが発生しているかを確認し、すべてを try/catch ブロックでラップして参照を削除し、クライアントに通知する必要がありますか?
soap - SoapFault 例外の解決: [HTTP] URL を解析できません
私は、PHP と 2 つのネイティブ スマートフォン アプリ (ios と android) によってクエリされる Soap ベースの Web サービスを使用するプロジェクトに取り組んでいます。
ここに問題を再現するための簡単なスクリプトがあります
次のエラーが表示されます。
メソッド TPGetLocalisationVersion が存在し、パラメータが正しい。このコードは、数日前に機能していました。
wget を使用して、PHP Web サーバーから wsdl をフェッチすることもできます。
いくつかのオンライン ツールで WSDL ファイルをテストしましたが、問題ないようです。
これをデバッグするための提案はありますか? 専用サーバー上にあり、php.ini で WSDL キャッシュを完全に無効にしているため、WSDL がキャッシュされていないと確信しています。
web-services - SpringIntegrationインバウンドWebサービスのWSDL生成
単純なPOJOベースのサービスをサービスアクティベーターを介してSOAPベースのWebサービスに公開することに特に関心のあるSpringIntegrationを評価しようとしています。現在、スタックしていて、動的wsdlの生成に問題があります。WSDLがロードされておらず、ブラウザに404エラーが表示されます。ローカルで次のURLを使用してアクセスしようとしています
以下は構成です
inbound-gateway-config.xml
EmployeeServiceは単なるpojoクラスですが、EmployeeServiceResponderはサービスクラスのメソッドを呼び出すサービスアクティベーターです。
動的wsdl生成の場合
spring-ws-config.xml
web.xml
このサービスをSI経由でWebサービスとしてアクセスできるようにするために、他に不足しているものを教えてください。
また、WebServiceテンプレートを使用してサービスにアクセスしようとすると、SOAPFAULTが表示されます。
事前に感謝-MS
php - PHPSoapServeraddSoapHeaderはSoapFaultで無視されます
http://www.whitemesa.com/soapauth.htmlで概説されているように、基本認証クレデンシャルを受け入れるPHPSOAPサービスを作成しました。これは、インスタンスBasicAuthのハンドラークラス内にメソッドを定義することで行いました。SOAPServerこれはすべて正常に機能します。
ただし、何らかの理由で認証が失敗した場合(ユーザー名が正しくない、リクエストにヘッダーがない)、次のように応答にヘッダーBasicAuthを含めたいと思います。BasicChallenge
次のコードは機能しません(ヘッダーは応答に追加されません)。
$soapServer->fault()代わりに電話throw new SoapFaultしても違いはありません。
自分でFaultオブジェクトを作成し、それを通常の応答として返すことを試みましたが、PHPに整形式の応答を送信させることができませんでした。
前もって感謝します。