8

私はJavaでフォームジェネレーターを開発しようとしています。このジェネレーターでは、ユーザーがwsdl urlを記述して、ComboBoxでWebサービスによってサポートされる操作のリストを取得できます。ユーザーがComboBoxの項目の1つを選択すると、wsdlURLを使用して生成されたフォームフィールドが表示されます。

私はWebサービス技術の初心者です。ネット上でWebサービスパーサーについて検索した後、軸ライブラリを使用することにしました。しかし、wsdlドキュメントのどの部分を解析する必要があるのか​​本当にわかりません

WebサービスのJavaクラスを作成しようとしているのではなく、wsdlURLのフォームフィールドを生成する必要があります。

たとえば、ここに9つの操作を提供するWebサービスがあります

http://services.aonaware.com/DictService/DictService.asmx

そしてwsdlファイルはここにあります:

http://services.aonaware.com/DictService/DictService.asmx?WSDL

wsdlファイルのどの部分を解析する必要があるかを知る必要があります。助けていただければ幸いです。

4

4 に答える 4

8

WSDLの使用を開始し、そのようなドキュメントがどのように構成されているかを理解するには、WSDLの理解WSDLチュートリアル、またはGoogleにあるその他の初心者向けリソースなどの記事を参照してください。

ここで、簡単な方法で質問に答えるには、次のportType要素を含む要素から始める必要があります。

1つ以上のエンドポイント(一般にインターフェースと呼ばれる)によってサポートされる操作の抽象的なセット。操作はメッセージの交換によって定義されます

たとえば、あなたの場合:

<wsdl:operation name="DictionaryList">
  <wsdl:documentation>Returns a list of available dictionaries</wsdl:documentation>
  <wsdl:input message="tns:DictionaryListSoapIn"/>
  <wsdl:output message="tns:DictionaryListSoapOut"/>
</wsdl:operation>

また、操作ごとに、入力メッセージと出力メッセージを解析する必要がありますmessage

複数の部分で構成される可能性のある抽象メッセージの定義。各部分は異なるタイプである可能性があります。

ここで、たとえば、前の操作の入力メッセージは次のとおりです。

<wsdl:message name="DictionaryListSoapIn">
  <wsdl:part name="parameters" element="tns:DictionaryList"/>
</wsdl:message>

次に、メッセージの内容を理解するために、:を見てくださいtypes

XMLスキーマを使用して定義された抽象型定義のコンテナー

ここでは、DictionaryList要素は空のcompleTypeとして定義されています。

<s:element name="DictionaryList">
  <s:complexType/>
</s:element>

私が言ったように、WSDLは4つの段落に要約できないため、これは非常に単純化された答えです。正直なところ、これから行うことは簡単な作業ではありません。これを言い換えさせてください:血があるでしょう!したがって、これらの数行が(ごくわずかな)開始に役立つ場合でも、私はそのようなプロジェクトを最初から開始するのではなく、既存のライブラリまたはツール(XydraやEclipse XML Forms Generatorなど)を使用します... )それは車輪の再発明をしないことを可能にするでしょう。

ちなみに、Axisを使用することにし、Javaクラスを生成したくないことに気づきましたが、とにかくAxisを使用しないことを強くお勧めします。実際、私はJAX-WSRIを使用します。これはJava6にバンドルされており、はるかに簡単なAPIです。念のため、Javaクラスを生成するには、次のコマンドを実行します。

$ mkdir generated
$ wsimport -d generated http://services.aonaware.com/DictService/DictService.asmx?WSDL
于 2009-12-29T00:23:27.117 に答える
3

これは、ThomasBayerによる「wsdlファイルの読み取り」に関する優れたチュートリアルです http://www.predic8.com/wsdl-reading.htm

于 2010-01-09T13:35:44.390 に答える
1

これは簡単なプロジェクトではありません。すでにこれを実行しているライブラリが最善のアプローチであることがわかるかもしれませんが、開始する場所は、属性をHTML FORMコンポーネントにマッピングし、最小/最大占有をJavaScriptイベントにマッピングすることです。

WSDLを理解していることから、FORMを作成する方がはるかに簡単です。役立つものとしては、次のようなものを使用できます

http://www.soapui.org/

または、Webベース(WSDLでテストしたばかりで動作します)の場合は、試すことができます

http://www.soapclient.com/soaptest.html

これらの2つのリンクは、あなたが達成しようとしていることに対して完全にベースから外れている可能性があることを私は知っています。

于 2009-12-28T23:46:14.730 に答える
1

WSDL側について話すことはできませんが、フォーム生成側としてMetawidgetを検討することができます。WSDLを抽出して解析したら、それをMetawidgetにプッシュして、多くのUIを無料で入手できます(さまざまなサポートプラットフォーム、さまざまなウィジェットライブラリなど)

よろしく、

リチャード。

于 2010-01-29T03:41:38.077 に答える