複数のWSDLファイルからAxis2(v1.6.1)Webサービスクライアントコードを生成して、1つのプロジェクト内に複数のWebサービスクライアントを作成しようとしています。私はAntを使ってcodegenタスクを使ってソースコードを生成しています。カスタムパッケージでAxis2ソースコードを生成する方法
したがって、クラッシュを避けるために、各Webサービスクライアントのコードを別のものから離しておくために、カスタム名前空間を使用してマッピングをパッケージ化する必要があります。
は、ここでは一例WSDLファイルから名前空間です:私は、適切なパッケージに生成されたコードの本体を得ることができた
<wsdl:definitions targetNamespace="http://www.elster-eis.com/ImportExport"
xmlns:tns="http://www.elster-eis.com/ImportExport"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
。私はsoapenc名前空間をカスタムパッケージで生成することができました。しかし、org\w3\www\_2004\_06\xmlmime
で生成しているコードを自分のカスタムパッケージのディレクトリ構造に入れることができません。ここで
は私のAntビルドファイルの関連部分です:
<property name="srv.pkg" value="com.company.webservice.mas" />
<property name="srv.mappings" value="http://www.elster-eis.com/ImportExport=${srv.pkg},http://www.w3.org/2001/XMLSchema=${srv.pkg}.xsd,http://schemas.xmlsoap.org/wsdl/soap/=${srv.pkg}.soap,http://microsoft.com/wsdl/mime/textMatching/=${srv.pkg}.tm,http://schemas.xmlsoap.org/soap/encoding/=${srv.pkg}.soapenc,http://schemas.xmlsoap.org/wsdl/mime/=${srv.pkg}.mime,http://schemas.xmlsoap.org/wsdl/soap12/=${srv.pkg}.soap12,http://schemas.xmlsoap.org/wsdl/http/=${srv.pkg}.http,http://schemas.xmlsoap.org/wsdl/=${srv.pkg}.wsdl" />
<target name="build.source" depends="define.tasks">
<codegen
wsdlfilename="${srv.wsdl}"
packageName="${srv.pkg}"
databindingName="xmlbeans"
output="."
generateAllClasses="true"
serverside="true"
generateservicexml="true"
testcase="true"
namespaceToPackages="${srv.mappings}"
/>
</target>
そして、ここでは読みやすさのために再度マッピングをパッケージする名前空間だ(彼らはカンマで区切られた単一のライン、スペースなしですべてです、 )Antビルドファイル内:
http://www.elster-eis.com/ImportExport= $ {} srv.pkg、
http://www.w3.org/2001/XMLSchema= $ {} srv.pkgの.xsd、
http://schemas.xmlsoap.org/wsdl/soap/= $ {srv.pkg} .soap、
http://microsoft.com/wsdl/mime/textMatching/= $ {srv.pkg}(商標)、
http://schemas.xmlsoap.org/soap/encoding/= $ {srv.pkg} .soapenc、
http://schemas.xmlsoap.org/wsdl/mime/= $ {srv.pkg } .mime、
http://schemas.xmlsoap.org/wsdl/soap12/= $ {srv.pkg} .soap12、
http://schemas.xmlsoap.org/wsdl/http/= $ {srv.pkg} .http、
http://schemas.xmlsoap.org/wsdl/= $ {} srv.pkgの.wsdl」
私は$ {} srv.pkg構造の下で生成するために、すべての生成されたコードを取得しようとしているが、org.w3コードはまだ、独自の下で生成ディレクトリ構造と私の名前空間マッピングは無視されています。
ここで私は間違っていますか?
あなたは軸が正しくないと、あなたのクラスを生成することを意味しますかパッケージの命名または間違ったディレクトリにありますか? – Andremoniy
@Andremoniy両方。それらはorg/w3などのディレクトリにあり、パッケージはその構造に関して同等のものを持っています。 – ManoDestra
ビルドを実行する前に以前に生成されたソースコードを削除しようとしましたか? – Andremoniy