0

これらのパラメーターは何をし、何に使用されますか?

<service name="...">
    <parameter name="wsdlPortType" value="..."/>
</service>

また、パラメーター wsdlServicePort、wsdlTargetNamespace、および wsdlServiceElement について説明できる人がいれば、それを歓迎します。

4

2 に答える 2

3

Axis 1.4 ユーザーズ ガイド:

Axis にサービスをデプロイすると、ユーザーは標準の Web ブラウザーを使用してサービスの URL にアクセスし、URL の末尾に「?WSDL」を追加することで、サービスを説明する自動生成された WSDL ドキュメントを取得できます。

実験結果は、Axis が .wsdd デプロイメント記述子ファイルとコンパイルされた Java .class ファイルの組み合わせを使用して、特定のサービスに対応する .wsdl を生成できることを示唆しています。たとえば、Map などの Generics 戻り値の型を持つ public メソッドがある場合、生成された .wsdl ファイルには戻り値の型が含まれず、代わりに "xsd:anyType" が含まれることに注意してください。これは、コンパイルされた .class ファイルの型消去によるものだと思います。

とにかく、Axis .wsdd ファイルのサービス オプション (私の質問で参照した wsdlPortType、wsdlServicePort、wsdlTargetNamespace などのパラメーター) は、.wsdl 仕様に関連しています。名前にはすべて「wsdl」が含まれているため、これは名前自体から推測できますが、これらのパラメーターの意味を説明したかったのですが、関連する Axis ドキュメントを見つけることができませんでした。ここに私の発見があります:

wsdlPortType (portType) : 基本的に Java インターフェースに似ています。メソッド名ごとに 1 つの「操作」要素が含まれます。各「操作」には、基本的に Java メソッドの入力パラメーターと戻りパラメーターである「入力」要素と「出力」要素が含まれています。

wsdlServicePort (wsdl:binding) portType に関連付けられています。portType のパラメータの送信方法の説明だと思います。仕様には次のように書かれています。

バインディング記述コンポーネントは、portType 記述コンポーネントのバインディングの詳細を示すためのフレームワークを提供します。バインディングの詳細は、メッセージがサービスとの間で送受信されるときにメッセージをどのようにフォーマットする必要があるかを示すために使用する必要があります。それらは、メッセージの送信に使用されるトランスポート プロトコルを示すためにも使用する必要があります。特定のバインディング記述コンポーネントは、複数のプロトコルを示してはなりません。

wsdl:service : wsdl ポート バインディング (portType の実装) への参照が含まれています。

ターゲット名前空間:私が思っていたものとほぼ同じです (他の場所の名前空間と同じです)。これはすべての wsdl:definitions コンポーネントに適用されるため、基本的に wsdl ファイル内のすべてのもの (wsdl:portType、wsdl:service など) に適用されます。ただし、仕様には他にもいくつかのルールがあります。

于 2013-02-07T22:00:44.937 に答える
0

問題: Service?wsdl を使用すると、生成された wsdl の targetNamespace、portType、サービス要素名、またはサービス ポート名が元の wsdl と異なる場合があります。この問題はユーザーから報告されており、TCK の問題です。

解決策: 4 つのオプション パラメータが deploy.wsdd に追加され、JavaProvider によって照会されます (wsdlTargetNamespace、wsdlServiceElement、wsdlServicePort、および wsdlPortType)。

Here is an example deploy.wsdd with the new parameters.

<!-- Services from AddressBookService WSDL service -->

<service name="AddressBook" provider="java:RPC">
    <parameter name="wsdlTargetNamespace" value="urn:AddressFetcher2"/>
    <parameter name="wsdlServiceElement" value="AddressBookService"/>
    <parameter name="wsdlServicePort" value="AddressBook"/>
    <parameter name="className" value="samples.addr.AddressBookSOAPBindingSkeleton"/>
    <parameter name="wsdlPortType" value="AddressBook"/>
    <parameter name="allowedMethods" value="*"/>
    <parameter name="scope" value="Session"/>

ソース: http://mail-archives.apache.org/mod_mbox/axis-java-dev/200206.mbox/%3C20020621143740.41268.qmail@icarus.apache.org%3E

于 2013-02-06T03:26:59.357 に答える