2

非常に単純な関数がたくさんあります。各関数には、1 つの入力と 1 つの出力があります。

OutputType function func(InputType);

入出力のタイプは xsd スキーマで定義され、JAXB/XJC で Java クラスに生成されます。ここで、これらの関数を Geronimo 上で実行される WSDL Web サービスとして公開したいと考えています。

Axis/WSDL2Java/Java2WSDL を見てみました。私の関数が作成されるのと同じように、それはかなり良いと思いました。

おそらく、Java2WSDL を使用して、関数と入出力の型から WSDL を生成できると思います。次に、いくつかのツールを使用してサーバー/クライアント側のバインディングを生成します。

誰でもさらに提案できますか?特に、関数の入出力を xsd スキーマで定義しました。

どうもありがとう。

まとめ:


これらは私が今持っているものです....

1 つの入力と 1 つの出力を持つ多くの実装関数。

public OutputType functionXXX(InputType in) { ....; 出力を返します。}

InputType と OutputType は既に xsd スキーマで定義されています (Jaxb/xjc で Java クラスに変換されています)。


私が欲しいのは....

これらの機能を実行する Web サービスを構築します。実装された関数のコードには触れないでください。そして WSDL では、

4

2 に答える 2

2

ここで探していることを行うためにCXFを使用するチュートリアルを見つけました。

そのドキュメントは、コントラクト ファースト アプローチを使用していると主張していますが、正確にはそうではありません。SOAP ベースのサービスについて説明する場合、最初にコントラクトとは、最初に記述子 (WSDL、XSD) を作成することを意味します。次に、それらの記述子からコード アーティファクトを生成します。元の著者の言葉の選択に関する議論については、元のブログ投稿のコメントを参照してください。

そうは言っても、コントラクトファーストのアプローチには、達成しようとしていることに応じて多くの利点があります。詳細については、Spring Web サービスのチュートリアルを参照してください。

于 2009-10-12T19:07:26.327 に答える
1

既存のJAXB2バインディングを備えた既存のスキーマがある場合、私の経験では、SpringWebServicesはそれをSOAPWebサービスとして公開する最も簡単な方法です。その哲学は「契約優先」であり、それはまさにあなたが持っているものです。追加のバインディングを生成する必要はありません。SpringMVCでエンドポイントを接続し、マーシャラーをプラグインするだけです。スキーマをイントロスペクトして、操作のように見えるものを探し、それらをWSDL操作として自動的に公開します(デフォルトの自動検出が完全に機能しない場合は、その方法を指示できます)。

于 2009-10-12T21:47:30.673 に答える