問題タブ [ws-discovery]
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.
gsoap - gsoap: 1.1 の代わりに WS-Discovery 1.0 を強制します
gsoap とそのプラグイン wsddapi を使用して WS-Discovery を実装しています。
WS-Discovery v1.0 を実装する必要がありますが、プラグインは v1.1 メッセージしか出力しません。プラグインのソース コードでは、v1.1 と v1.0 の両方で有効であると書かれていますが、gsoap に v1.0 メッセージを強制的に使用させる方法がわかりません。
何かヒントはありますか?
wcf - URI を EndpointAddress に解決する
現在、アドホック サービス検出を実行して、ローカル サブネットで実行されている (不明な) サービスを検出できる WCF クライアントを使用しています。EndpointAddress
ユーザーがテキスト ボックスに URI を入力して使用するサービス エンドポイントを指定し、クライアントがこの URI を に解決し、その過程でサービスに関する追加のメタデータを収集する方法を実装したいと考えています。つまり、EndpointIdentity
の Extensions プロパティで公開されている および追加のデータを収集する必要がありEndpointDiscoveryBehavior
ます。
を使用してこれを達成しようとしていますが、プロパティDiscoveryClient.Resolve()
に対して null しか受け取っていません。ResolveResponse.EndpointDiscoveryMetadata
に関する情報はたくさんありますが、 についてDiscoveryClient.Find()
はそれほど多くはありませんDiscoveryClient.Resolve()
。
だから私の質問は:
- これは の使用目的
DiscoveryClient.Resolve()
ですか? MetadataResolver
ここの方が適切ですか?EndpointAddress
URI を に解決し、他のメタデータを取得するにはどうすればよいですか?
wso2 - wso2: ws-discovery 統合
WSO2 WS-Discovery 統合
WS-Discovery を Carbon 製品の WSO2 Governance Registry と WSO2 ESB に統合しようとしています。この WSO2 ESB は、WSO2 の Discovery Proxy (localhost:9443/services/DiscoveryProxy) に hello メッセージを送信する Tomcat で実行されている Spring を介して構成された Apache CXF Web サービス スタックを持っています。グレッグ。
そのため、Tomcat のクラスパスに cxf-services-ws-discovery-service.jar と cxf-services-ws-discovery-api.jar を追加しました。さらに、スプリング バス プロパティ org.apache.cxf.service.ws-discovery.address を WSO2 Greg 上の WS-Discovery Proxy の URL アドレスに設定して、WS-Discovery をマネージド モードで実行します。Tomcat と WSO2 Greg を実行すると、次のエラー メッセージが wso2Carbon.log に記録されます (WSO2 Greg) ...
私たちは、WSO2 の製品ドキュメントを読み、いくつかのフォーラムやブログなどを検索して、この問題を解決しようと数時間試みました。残念ながら、解決策を見つけることができませんでした。
注: Tomcat の代わりに WSO2 Application Server との WS-Discovery 統合は問題なく機能しました。しかし、WSO2 ESB を検出クライアントとして使用して WSO2 Greg からサービスを検出する場合、WSO2 ESB で検出されたサービスからプロキシ サービスを作成するウィザードで、プロキシの作成後に publishWSDL xml タグが欠落しています。このタグは手動で追加する必要があります。これをさらに編集せずにこれを行う方法はありますか??
どんな助けにも感謝します。
前もって感謝します
c# - WCF サービス障害処理 WS-Discovery Resolve メッセージ
ディスカバリーを実装する WCF サービスがあります。正常に動作していますが、現時点ではネットワーク上のメッセージをキャッチしているように見えるエラー ハンドラーがあり、それが無効かどうかはわかりません。ネットワーク モニタを使用した後、これ以外の検出関連のメッセージを処理/無視しているようです。
私の質問: この (タイプの) メッセージをエレガントに処理するために、サービスに追加できる追加の構成はありますか?
何か足りないものはないかと思っただけです。簡単な解決策がない場合は、現在のようにサービスに障害として処理させていただければ幸いです。
障害は次のとおりです。
メッセージは次のとおりです。
そして、既定の WCF の新しいプロジェクト テンプレートに基づくサンプル アプリを次に示します。
Program.cs:
IService1.cs と Service1.cs:
乾杯、クリス。
c# - ディスカバリー - ProbeMatch 応答が破棄される
私は onvif カメラで作業していますが、発見に関していくつかの問題があります。
以下のように非常に基本的な検出コードを使用すると、ネットワーク上のほとんどのデバイスから応答が返されますが、いくつかは破棄されています。トレース ログを追加し、ディスカバリ クライアントによって破棄されたメッセージを次の説明とともに確認できます。
対応する検索操作が完了したか、relatedTo 値が無効であるため、messageId='uuid:xxx' および relatedTo='uuid:xx' の ProbeMatches メッセージが DiscoveryClient によってドロップされました。
トレースと MS Network Monitor の relatedTo 値を見ると、それらはまったく同じように見え、ドロップされているものは最初のいくつかの返信にあるため、操作が完了した後ではないと思います。
私はまた、sourceforge にある onvif デバイス マネージャーを実行しました。これには同じ問題がありますが、デバイスが異なります。以前にこれに遭遇した人はいますか、それを引き起こしている可能性のあるアイデアはありません。
c# - 複数の IP アドレスを持つネットワーク インターフェイスでの WCF Web サービス検出
DiscoveryClient
このコードを使用して、WCF を使用して Web サービスの検出を試みています。
これは、単一のネットワーク インターフェイスに割り当てられた単一の IP アドレス (10.1.4.25) を持つマシンで非常にうまく機能します。ブロードキャストは 10.1.4.25 から 239.255.255.250 に送信され、すべて同じサブネット上の 5 つのデバイスから応答を受け取ります。
ただし、マシンが同じインターフェイスに複数の IP を持っている場合、単一のソース IP を選択して、そこからリクエストを送信しているように見えます。この場合、169.254 アドレスの 1 つのデバイスから応答を受け取ります。
UdpDiscoveryEndpoint.TransportSettings.MulticastInterfaceId
特定の IP ではなく単一のインターフェイスを識別するため、適切なインターフェイス ID に設定しようとしましたが、役に立ちませんでした。このUdpDiscoveryEndpoint.ListenUri
プロパティはマルチキャスト アドレスも返すため、送信元 IP には影響しません。
UdpDiscoveryEndpoint.Address
検出プロトコルの URN です。
特定の IP アドレスから、または理想的には、構成された各 IP で複数の要求を強制的に送信する方法はありますか?
同じ問題があると思われるONVIFデバイスマネージャーも試しました。
これは、サービスを特定の、または「すべてのアドレス」IP にバインドすることに関するものではないことに注意してください。これは、検出リクエストの送信元の IP に関するものです。
spring - WS-Discovery プラグインで使用される CXF サービスの publishedUrl を設定する方法は?
CXF WS-Discovery プラグインを使用して CXF サービスの URL を公開しようとしています。
チュートリアルhttps://cxf.apache.org/docs/writing-a-service-with-spring.htmlは、helloworld サービスの構築に役立ちます。WS-Discovery の CXF ドキュメントhttps://cxf.apache.org/docs/ws-discovery.htmlでは、 cxf-services-ws-discovery-service.jar を追加すると公開できることが説明されています。
素晴らしいですが、公開された URL はサーブレットに関連しているため、WS-Discovery Probe を送信するクライアントからは到達できません。
次の web.xml および cxf-servlet.xml ファイルを使用することを提案する興味深いアプローチhttp://osdir.com/ml/users-cxf-apache/2012-05/msg00524.htmlを見つけました:
web.xml:
cxf-servlet.xml:
サーブレット コンテナーがポート 8080 を使用する場合、これは正常に機能します。
私は使用しようとしましservletContext.getRealPath('/webservices')
たが、これはhttpアドレスではなくファイルシステムパスを提供します。
サーブレット コンテナー ポート (Tomcat、jetty などに準拠) を取得する方法はありますか? または、エクスポート可能な URL を公開する別の方法はありますか?
android - Android 用の WS-Discovery 実装
AndroidでWS-Discoveryを使用する必要があります。ほぼ1日グーグルで検索しましたが、何も見つかりませんでした。
あなたが私の立場だったらどうしますか?