私はAxisの初心者です。現在、すべてが 1 つの wsdl で動作します。axis を使用して services.xml を作成します。
現在、別の名前空間で新しい wsdl ファイルを作成しています。これら 2 つの wsdl ファイルを使用して単一の services.xml ファイルを生成するにはどうすればよいですか?
私が達成したいのは、両方の SOAP サービスが 1 つのポートにバインドされることです。
ちなみに、プロジェクトのビルドにはantを使用しています。
ありがとう
次のようなantconcatルールを使用します。
<concat destfile="/some/final/services.xml" fixlastline="yes">
<file file="/first/services.xml" />
<file file="/second/services.xml" />
<filterchain><tokenfilter>
<filetokenizer />
<replaceregex
pattern="</serviceGroup>.+?<serviceGroup>"
flags="gs" />
<replaceregex
pattern="first.default.service.class"
replace="first.actual.service.class" />
<replaceregex
pattern="second.default.service.class"
replace="second.actual.service.class" />
</tokenfilter></filterchain>
</concat>
<file...>これにより、ソース ファイル (2 つの要素) が宛先ファイル (destfile属性)に連結されます。この<filterchain>セクションでは、連結中にテキストを変更できます。1つ目は、2 つのファイルが連結されているポイントからタグをreplaceregex削除します。</servicegroup><servicegroup>他のreplaceregexエントリを使用して、サービス実装クラスの名前を変更したり、サービス ライフサイクル クラス エントリを追加したり、その他の変更を行うことができます。
一部のプロジェクトでは、元のservices.xmlファイルがファイル システムに直接保存されるのではなく、zipfile または jarfile 内に保存されます。そのためには、<zipentry...>要素ではなく要素を使用します<file...>。
<zipentry zipfile="/some/jarfile.jar" name="resources/services.xml"/>