0

Webアプリを実装する必要がありますが、リレーショナルデータベースを使用する代わりに、バックエンドとして別のSOAPWebサービスを使用する必要があります。アプリケーションの重要な部分は、Webサービスを呼び出し、結果を表示するだけです。Webサービスは操作の形式で明確に定義されているため、パラメーターとリターンタイプでは、ドメインエンティティに基づくスキャフォールディングの場合と同じように基本的なGUIを簡単に構築できるように思われます。

たとえば、SearchProducts Webサービス操作の場合、検索パラメーターを入力として入力する必要があるため、検索ページを作成できます。操作により商品のリストが返されるので、このリストをある種の表に表示するページが必要です。

これを実現するためのライブラリがすでにいくつかありますか。そうでない場合は、どのように作成しますか?

4

2 に答える 2

1

おそらく最も簡単なアプローチは、WSDLファイルでwsimportを使用して、クライアント側のスタブを生成することです。次に、Javaから呼び出すのと同じように、Groovyからスタブのメソッドを呼び出すことができます。

たとえば、http: //terraservice.net/TerraService.asmx?wsdlにあるMicrosoftのTerraServerのWSDLファイルについて考えてみます。次に、次のようなものを実行します

wsimport -d src -keep http://terraservice.net/TerraService.asmx?WSDL

これにより、コンパイルされたすべてのスタブがsrcディレクトリに配置されます。次に、次のようなGroovyコードを記述できます。

import com.terraserver_usa.terraserver.*;

TerraServiceSoap sei = new TerraService().getTerraServiceSoap()
Place home = new Place(city:'Boston',state:'MA',country:'US')
def pt = sei.convertPlaceToLonLatPt(home)
println "$pt.lat, $pt.lon"
assert Math.abs(pt.lat - 42.360000) < 0.001
assert Math.abs(pt.lon - -71.05000) < 0.001

多くのWebサービスにアクセスする場合は、それらすべてのスタブを生成します。または、代わりに動的プロキシを使用できます。

ただし、肝心なのは、Javaにすでにうまく機能していることを実行させ、Groovyを使用して作業を楽にすることです。

于 2009-11-17T02:15:31.213 に答える
0

XFireまたはCXFプラグインを使用できるはずです。自動スキャフォールディングの場合は、スキャフォールディング テンプレートで Controller.groovy テンプレートを変更して、必要なメソッドが自動生成されるようにします。

于 2009-11-16T23:00:36.087 に答える