23

私は Apache CXF を使用して、約 10 個の Java クラスを Web サービスとして公開しました。

CXF、Axis、および .NET を使用してクライアントを生成しました。

Axis と CXF では、「サービス」または「ロケーター」が生成されます。このサービスから「ポート」を取得できます。「ポート」は、Web サービスによって公開されたメソッドを個別に呼び出すために使用されます。

.NET では、「サービス」は Web サービスへの呼び出しを直接公開します。

Web サービスに関して、ポート、サービス、ロケーター、およびエンドポイントの違いを誰か説明できますか?

軸:

PatientServiceImplServiceLocator locator = 
    new PatientServiceImplServiceLocator();
PatientService service = locator.getPatientServiceImplPort();

CXF:

PatientServiceImplService locator = new PatientServiceImplService();
PatientService service = locator.getPatientServiceImplPort();

。ネット:

PatientServiceImplService service = new PatientServiceImplService();
4

4 に答える 4

39

Kevin Kenny の回答に基づいて情報を見つけましたが、他の人のためにここに投稿すると思いました。

WSDL ドキュメントは、ネットワーク エンドポイントまたはポートのコレクションとしてサービスを定義します。WSDL では、エンドポイントとメッセージの抽象的な定義は、具体的なネットワーク展開やデータ形式のバインディングから分離されています。これにより、抽象的な定義の再利用が可能になります。つまり、交換されるデータの抽象的な記述であるメッセージと、操作の抽象的なコレクションであるポート タイプです。特定のポート タイプの具体的なプロトコルおよびデータ形式の仕様は、再利用可能なバインディングを構成します。ポートは、ネットワーク アドレスを再利用可能なバインディングに関連付けることによって定義され、ポートのコレクションによってサービスが定義されます。したがって、WSDL ドキュメントは、ネットワーク サービスの定義で次の要素を使用します。

  • – 何らかの型システム (XSD など) を使用したデータ型定義のコンテナー。
  • メッセージ– 伝達されるデータの抽象的で型指定された定義。
  • 操作– サービスによってサポートされるアクションの抽象的な説明。
  • ポート タイプ– 1 つまたは複数のエンドポイントでサポートされる操作の抽象的なセット。
  • バインディング- 特定のポート タイプの具体的なプロトコルおよびデータ形式の仕様。
  • ポート– バインディングとネットワーク アドレスの組み合わせとして定義される単一のエンドポイント。
  • サービス– 関連するエンドポイントのコレクション。
于 2008-08-14T20:03:09.647 に答える
9

ポート、サービス、およびエンドポイントについて十分に説明していると思いますロケーターは、一部の WS スタックがサービス エンドポイントへのアクセスを提供するために使用する実装固有のメカニズムです。

于 2008-08-14T19:54:23.860 に答える
4

それを追加して同じ目的<port>を果たしたいのですが、WSDL 1.1 とWSDL 2.0 で使用されています。<endpoint>portendpoint

于 2014-04-14T17:23:31.683 に答える
1

すでに述べたように、これらの用語は、スタックが異なれば意味も異なります。Web サービスに対する正しい一般的な答えはありません。

于 2008-08-14T19:26:35.570 に答える