1

マルチモジュールMavenプロジェクトのWSDLファイルから生成されたaxis2 Webサービスがあります。

wsdl2java私のためにスタブと基本的なスケルトンを生成しました。

これらの生成されたスタブを既存のビジネス ロジックに統合する最良の方法は何ですか?

いくつかの考慮事項があります。

  • 最も簡単な方法は、ビジネス ロジックをスタブ内に実装することです。しかし、私はそれが問題につながると信じています:
    • スタブは現在、コマンドの一部として生成されていmvn clean installます。Mavencleanは、生成されたソース フォルダーを削除します。実装されたビジネス ロジックを含むスタブが削除されないように保護する必要があります。
    • 生成されたスタブから VCS に何もコミットしたくありません。清潔に保ちたいです。
  • 別のソース フォルダーでスタブ クラスを拡張するオプションがあります。これにより、前のアプローチの短所が解消されますが、ステージに新しいものがもたらされます。
    • AXIS2 docs から理解したように、サービス クラスを指定する必要がありますservices.xml(これは maven-axis2 プラグインで生成されます)。この場合も、生成されたスタブの一部を変更から保護する必要があります。

これをどうにか回避する方法はありますか?web.xml でサービス クラスの実装を指定するようなものですか? または似たようなものですか?

4

2 に答える 2

1

Axis2 はJAX-WSwsimportに準拠しているため、 の代わりにこのツールを使用できますwsdl2java。コントラクト ファースト アプローチを採用し、WSDL ファイルからスタブを生成していると思います。wsimport maven プラグインのドキュメントは次のとおりです。多くのことを変更できます(destDirたとえば)。

Maven clean は、生成されたソース フォルダーを削除します。実装されたビジネス ロジックを含むスタブが削除されないように保護する必要があります。

スタブを通常のパッケージ構造 (おそらく独自のパッケージ) に実際に生成し、生成されたファイルを maven clean plugin configurationに追加 (または除外) することができます。このmvn プラグインを使用する場合、IDE は生成されたファイルをプロジェクト クラスパスに追加する必要があります。

もし私があなたなら、可能な限り JAX-WS に準拠するように努めるでしょう。そうすれば、Axis2 に縛られたベンダーになることはなくなるからです。ただし、将来的に CXF、Metro、または Jboss WS に切り替えることができます。このservices.xmlファイルは Axis2 固有です。

この場合も、生成されたスタブの一部を変更から保護する必要があります。

これらのリソースは、SCM システムによって無視されるものとしてマークできます。そして、それらを Eclipse で派生したものとしてマークします。ここにmvn プラグインがあります。その場合、変更しようとすると開発者に通知されます。IntelliJ IDEA にも似たようなものがあるはずです。

于 2013-06-26T09:26:16.583 に答える