問題タブ [contract-first]

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.

0 投票する
1 に答える
937 参照

c# - xsd データ型に基づく WCF コントラクト ファースト

XSD定義としてデータ型を作成しています。これらの xsd ファイルは、WebSphere Application Server にインポートされます。

これらのデータ型を使用して、WebSphere Application Server が WCF Web サービスを呼び出せるようにしたいと考えています。

元の xsd は次のとおりです。

これを xsd.exe で実行すると、次の C# コードが生成されます。

次に、このデータ型を WCF コントラクトで使用すると、次の xsd が生成されます。

  • データ コントラクトを元の xsd と同じにしたいと考えています。
  • また、生成後にファイルを編集する必要がないようにしたいと考えています。(データモデルが大きい)

この問題は、minoccurs=0 を持つオプション フィールドに関連しています。これらは実際には null 可能ですが、xsd.exe は .net が null 可能な型を持つ前に作成されました。

WCF コントラクトで使用されるデータ型が XSD で指定されたものとまったく同じであることをどのように確認できますか?

0 投票する
2 に答える
13974 参照

c# - 1つのWCFサービス–2つのクライアント。1つのクライアントが機能しない

1つのWCFサービスと2つのコンソールアプリクライアントがあります。

サービス:サービスコードは、WCSFBlueツールを使用してwsdl連絡先から作成されます。

クライアント1:このクライアントは、svcファイルを参照して取得したwsdlを使用しています。この参照されたwsdlファイルは、コントラクトwsdlファイルとは少し異なります。

クライアント2:このクライアントは、元のwsdlコントラクトを使用して作成されます。

Cleint1は正常に動作しています。クライアント2が機能していません。潜在的な問題は何でしょうか?

両方のクライアントのApp.Configファイルは似ていますが、名前だけが変更されています。問題は、生成されたクライアントC#コード(おそらくアクションReplyAction )にあると思います。ここで何を修正する必要がありますか?

顕著な違いの1つは、アクションとReplyActionです。

クライアント1:

Action = "urn:lijo:demos:multiplyservice:calculation:v1 / ICalculationService / GetMultiplied"、ReplyAction = "urn:lijo:demos:multiplyservice:calculation:v1 / ICalculationService / GetMultipliedRe" + "sponse"

クライアント2:

Action = "urn:lijo:demos:multiplyservice:calculation:v1:getMultipliedIn"、ReplyAction = "*"

トレースメッセージ

アクション'urn:lijo:demos:multiplyservice:calculation:v1:getMultipliedIn'のメッセージは、EndpointDispatcherでのContractFilterの不一致により、レシーバーで処理できません。これは、コントラクトの不一致(送信者と受信者の間のアクションの不一致)または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインディング(メッセージ、トランスポート、なしなどのセキュリティ要件を含む)を持っていることを確認します。

編集

これは、以下のようにActionとReplyActionを変更することで修正できます(サービスからコピー)。

注:サービスの大文字と小文字が正しいことを確認することが重要です(つまり、GetMultipliedではなくgetMultiplied)

サービスからのコピーは機能しますが、適切なオプションではありません。正しいアクションとReplyActionは何でしょうか?

また、生成されたクライアントプロキシでReplyActionが正しくなるようにwsdlを変更する方法を教えてください。それは、それを回答済みとしてマークするための重要な部分です。

WCF:アクション、アスタリスク、メタデータ

メタデータ発行に使用されるWsdlExporterは、アスタリスクアクション(ActionとReplyActionの両方)を使用した操作を無視します。

MSDNから-ReplyActionプロパティ

サービスでアスタリスクを指定すると、メッセージに応答アクションを追加しないようにWCFに指示されます。これは、メッセージに対して直接プログラミングしている場合に役立ちます。

参考文献

  1. WCFメタデータに操作がありません

RestaurantData.xsd

元の契約wsdl

0 投票する
1 に答える
670 参照

wcf - WSDL を使用して既存の Java クライアントで使用するための WCF を使用した Web サービスの構築

.NET 4.0 で Web サービスを構築する必要がある既存の Java クライアントがあります。インターフェイスはすでに WSDL ファイルで定義されているので、クラス ライブラリを作成し、WSCF.blueを使用してサーバー側スタブを生成しました(svcutil も試しましたが成功しませんでした)。WSCF.blue は参照とファイルの追加を処理します (優れたツール :-)) ので、生成された System.NotImplementedException をいくつかのコードに置き換えただけです。次に、ASP.NET 開発サーバーで結果をホストしました。

有名な「コントラクト名 'WsdlWebService.IHello' が、サービス 'Hello' によって実装されたコントラクトのリストに見つかりませんでした。」ブラウザーでサービスを検索するとき ( WCF コントラクト名 'IMyService' が見つかりませんでした?を参照してください)。しかし、これは ServiceContractAttribute であり、それが仕事をすることを期待しています。

誰かが私が欠けているものを指摘できれば幸いです...

これは、生成されたインターフェイスと実装です。

これは web.config です。

0 投票する
3 に答える
2170 参照

visual-studio-2012 - VisualStudio2012にコントラクトファーストツールをインストールする方法

VisualStudio 2012を使用していて、次のチュートリアルhttp://msdn.microsoft.com/en-us/library/hh674270.aspxに従おうとしています。

しかし、 [テンプレート]ダイアログの[ WCF]ペインから[スキーマ定義]オプションが見つかりませんでした。

何かをインストールする必要がありますか?それは何でしょうか?おそらく拡張機能ですか?

前もって感謝します。

0 投票する
1 に答える
1030 参照

wcf - XSD制限をサポートするWCFサービス?

私はこの1日、元のXSDで定義されている制限を実際に維持するWCFサービスを生成する方法を見つけるのに苦労していました。基本的な問題は、制限(パターンなど)を含むXSDを使用してコントラクトファーストサービスを構築すると、サービスのデプロイ時に出力されるWSDL/XSDから制限が削除されることです。

同じ問題について不平を言っている他の誰かがいます:http://geekswithblogs.net/wojan/archive/2010/12/10/143086.aspx

私は2つのオプションがあると思うものが残っています:

  • Webサーバー(IISまたはIIS Express)でサービスによって生成されたWSDL/XSDを置き換えることはできますか
  • デフォルトのXMLシリアライザーを、XSD制限を適切にサポートする別のサードパーティのシリアライザーに置き換えることはできますか?

考え?

0 投票する
0 に答える
406 参照

cxf - cxf の非同期 Web サービス

cxf を使用して、サーバー側からクライアント側に一方的に応答を送信する必要があります。 JAX-WS wsdl の最初のアプローチです。wsdl を Java クラスに変換するために cxf 'wsdltojava' を使用しています。

簡単にするために、私の質問は、「CXF、JAX-WS wsdlの最初のアプローチでサーバーからクライアントに応答を(クライアントからの要求なしで)送信する方法」です。

0 投票する
1 に答える
1342 参照

java - WSDLファーストのアプローチでは、何らかの(例:検証)メソッドを使用してDTOをどのように記述しますか?「貧血ドメインモデル」を書かないでください

私はWSDLファーストを使用しています。私はWSDLを持っており、Mavenプラグイン'cxf-codegen-plugin'を使用してJavaコードを生成します。コードを使用する-最初のコードは、たとえば次のようにDTOを記述できます。

したがって、Code-First(Java-First)を使用すると、検証メソッドを使用してDTOを簡単に記述できます。クライアントは、検索条件が適切に満たされているかどうかを確認できます。このクラスは、@WebServiceで注釈が付けられたWebServiceクラスによって返されます。そして、これは機能します。

しかし、WSDL-Firstアプローチを使用してそのようなDTOを(何らかの方法で)作成するにはどうすればよいですか?

私はWSDL-Firstアプローチがとても好きです(多くの利点がありますが、これについて書く場所ではありません)が、メソッドを追加したいと思います...「貧血ドメインモデル」を書かず、クライアントが以前に満たされた検索基準をチェックできるようにしますサーバーに送信します。

0 投票する
0 に答える
53 参照

java - スプリング ハンドラ コードが実行されない

私がここにいるのは、私のコントラクトで、Spring で作成された最初の Web サービスでハンドラー コードが実行されない理由を理解できないからです。SpringJUnitテストを実行するためにテストを使用しMockています。

ここに私のエンドポイントがあります:

メッセージの送信者は次のとおりです。

InscriptionRequest.xml ファイルの冒頭部分は次のとおりです。

テストの結果は良好ですが、ハンドラーで印刷しようとすると、実行されないようです。コンストラクターが正常に呼び出されるため、エンドポイントに問題があるとは思いません。

誰かが同じ問題を抱えているか、それを修正する方法を知っていますか?

詳細が必要な場合は、プロジェクトの git アドレスをお知らせします: https://github.com/Ornro/CVWS

0 投票する
3 に答える
9522 参照

wcf - スキーマ タイプを WSDL ファイルに含める

入力パラメータも出力パラメータもない操作が 1 つしかない WSDL を手動で作成しました。

この WSDL からクライアントを作成しようとすると、次のエラーが発生します。

wsdl:portType 詳細をインポートできません: WSDL インポート拡張機能の実行中に例外がスローされました: System.ServiceModel.Description.DataContractSerializerMessageContractImporter エラー: ターゲット名前空間のスキーマ ' http://www.xmlns.mycompany.com/GAME/service/Associate/ 1.1/ ' が見つかりませんでした。エラー ソースへの XPath: //wsdl:definitions[@targetNamespace=' http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/ ']/wsdl:portType[@name='GAMEAssociateIntf'] C :\toolbox\BlueTest\BloodRedTest\BloodRedTest\Service

(types クライアントで使用される) は、WSDL に存在する XML から生成する必要があります。サービス参照を追加しているときに、XML のエラーが原因でツールが作成に失敗していると思います。xsdが問題のようです。

プロキシを作成するには、WSDL でどのような変更を行う必要がありますか?

注: WSDL 自体で定義されている xml タイプを含めようとしています。【スキーマ定義用の別ファイルはいらない】

WSDL

参考文献

  1. WSDL - 入力なし - ベスト プラクティス
  2. この WCF エラーの意味: 「カスタム ツールの警告: wsdl:portType をインポートできません」
  3. 手動で WSDL 1.1 Web サービス コントラクトを作成する
  4. コントラクト優先の Web サービスを作成する
  5. wsdl ファイルから wcf サーバー コードを生成する
  6. wsdl の入力名と出力名を表示する方法
  7. インライン スキーマ
  8. 手巻きの SOAP リクエスト