2011-02-03 4 views
4

私はEclipseにwsdlファイルを持っており、axis2プラグイン経由でクライアントを生成しています。wsdl-Axis2から生成されたファイルのカスタムネームスペースのマッピングを定義します。

ファイルは、ソースフォルダのcom.mycompany.stubというパッケージに生成されています。

私は、WSDLファイルでそれを行うことができます

をcom.mycompany.ws.workflowするために生成されたソースファイルのパッケージ名を変更したいですか?

答えて

9

これを達成するために実際にwsdlを変更する必要はありません。 Eclipse Helios Webサービスクライアントウィザードを使用している場合は、生成されたソースの出力フォルダを指定する2番目の手順(オプション)で、 '名前空間のパッケージへのカスタムマッピングを定義する'チェックボックスがあります。そのボックスを選択し、次のフォームでカスタムパッケージマッピングを定義することができます。

EDIT 1:Official Documentation

EDIT 2から

リンク:上記のように、単純なWSDLの

WSDL

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:tns="http://mycompany.com/MyService.wsdl" 
xmlns:scm="http://mycompany.com/MyService.xsd" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
targetNamespace="http://mycompany.com/MyService.wsdl"> 
... 

、カスタムマッピングは、以下のようにようになります。

http://mycompany.com/MyService.wsdl - com.mycompany.ws.workflow http://mycompany.com/MyService.xsd - com.mycompany.ws.workflow.schema

は、名前空間とパッケージ名を追加して入力する]をクリックするか、ファイルのプロパティにマッピングを格納し、一度にすべてを追加するために、インポートをクリックすることができます。私はプロパティファイルを好む。また、プロパティファイルを使用する場合は、名前空間のURLやその他の特殊文字をエスケープする必要があります。プロパティファイルは以下のようになります。

nsmapping.properties

http\://mycompany.com/MyService.wsdl=com.mycompany.ws.workflow http\://mycompany.com/MyService.xsd=com.mycompany.ws.workflow.schema

公式ドキュメントから抜粋

プロパティファイルの内容は、namespace = packageの形式である必要があります。プロパティファイル内のいくつかの特殊文字をエスケープする必要があります。たとえば、http://someNamespace=somePackageはhttp:// someNamespace = somePackageである必要があります。それ以外の場合、コロン(:)はデリミタとして扱われ、httpをsomeNamespace = somePackageにマップしようとします。

+1

カスタムパッケージマッピングの例を挙げることができますか?私はそこに何を挿入しますか? – Bracha

+1

@Bracha私は簡単な例を含めるために私の答えを更新しました。 – TMan

+0

@TMan nsmapping.propertiesファイルはどこに置く必要がありますか? – sbo

関連する問題