問題タブ [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.
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 で指定されたものとまったく同じであることをどのように確認できますか?
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を変更する方法を教えてください。それは、それを回答済みとしてマークするための重要な部分です。
メタデータ発行に使用されるWsdlExporterは、アスタリスクアクション(ActionとReplyActionの両方)を使用した操作を無視します。
MSDNから-ReplyActionプロパティ
サービスでアスタリスクを指定すると、メッセージに応答アクションを追加しないようにWCFに指示されます。これは、メッセージに対して直接プログラミングしている場合に役立ちます。
参考文献:
RestaurantData.xsd
元の契約wsdl
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 です。
visual-studio-2012 - VisualStudio2012にコントラクトファーストツールをインストールする方法
VisualStudio 2012を使用していて、次のチュートリアルhttp://msdn.microsoft.com/en-us/library/hh674270.aspxに従おうとしています。
しかし、 [テンプレート]ダイアログの[ WCF]ペインから[スキーマ定義]オプションが見つかりませんでした。
何かをインストールする必要がありますか?それは何でしょうか?おそらく拡張機能ですか?
前もって感謝します。
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制限を適切にサポートする別のサードパーティのシリアライザーに置き換えることはできますか?
考え?
cxf - cxf の非同期 Web サービス
cxf を使用して、サーバー側からクライアント側に一方的に応答を送信する必要があります。 JAX-WS wsdl の最初のアプローチです。wsdl を Java クラスに変換するために cxf 'wsdltojava' を使用しています。
簡単にするために、私の質問は、「CXF、JAX-WS wsdlの最初のアプローチでサーバーからクライアントに応答を(クライアントからの要求なしで)送信する方法」です。
java - WSDLファーストのアプローチでは、何らかの(例:検証)メソッドを使用してDTOをどのように記述しますか?「貧血ドメインモデル」を書かないでください
私はWSDLファーストを使用しています。私はWSDLを持っており、Mavenプラグイン'cxf-codegen-plugin'を使用してJavaコードを生成します。コードを使用する-最初のコードは、たとえば次のようにDTOを記述できます。
したがって、Code-First(Java-First)を使用すると、検証メソッドを使用してDTOを簡単に記述できます。クライアントは、検索条件が適切に満たされているかどうかを確認できます。このクラスは、@WebServiceで注釈が付けられたWebServiceクラスによって返されます。そして、これは機能します。
しかし、WSDL-Firstアプローチを使用してそのようなDTOを(何らかの方法で)作成するにはどうすればよいですか?
私はWSDL-Firstアプローチがとても好きです(多くの利点がありますが、これについて書く場所ではありません)が、メソッドを追加したいと思います...「貧血ドメインモデル」を書かず、クライアントが以前に満たされた検索基準をチェックできるようにしますサーバーに送信します。
java - スプリング ハンドラ コードが実行されない
私がここにいるのは、私のコントラクトで、Spring で作成された最初の Web サービスでハンドラー コードが実行されない理由を理解できないからです。SpringJUnit
テストを実行するためにテストを使用しMock
ています。
ここに私のエンドポイントがあります:
メッセージの送信者は次のとおりです。
InscriptionRequest.xml ファイルの冒頭部分は次のとおりです。
テストの結果は良好ですが、ハンドラーで印刷しようとすると、実行されないようです。コンストラクターが正常に呼び出されるため、エンドポイントに問題があるとは思いません。
誰かが同じ問題を抱えているか、それを修正する方法を知っていますか?
詳細が必要な場合は、プロジェクトの git アドレスをお知らせします: https://github.com/Ornro/CVWS
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
参考文献: