2011-11-15 10 views
1

Javaを使用して入力としてHashmapを持つSOAPベースのWebサービスを構築しようとしていますか?入力パラメータとしてHasmapを使用したSOAPベースのWebサービスインターフェイス

誰も以前に試したことがありますか?これはどのような問題を引き起こすのでしょうか?

入力はハッシュマップまたはリストとして扱うのがベストプラクティスですか?

お返事ありがとうございます。

答えて

2

WebServiceエンドポイントの入力としてHashMapを使用するソリューションが見つかりました。

入力で直接HashMapを定義した場合、XSDは正しく表示されません。また、WSDLは容易に理解できません。

入力クラスを定義し、入力として計画していたHasMap属性を追加します。

Class A 
{ 
HasMap inputData; 

//Add the Getter and Setter 
} 

Webservceメソッドに入力する際に​​クラスAを使用してください。これであなたのWSDLはキーマップとVlueペアを持つHas​​Mapを持ちます。

2

CXF java_first_jaxwsサンプル:

http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/

が "正しく" JAX-WS/JAXBとマップ(及び他のインターフェース派生型)を処理する方法の提供および実施例。基本的には、マップをJAXBが完全にマップできるタイプに変換するXmlAdapterを作成する必要があります。 JAXBは実行時にそれらのアダプタを自動的に使用して、満足している型にマップします。その結果、結果として得られるスキーマ/ wsdlを完全に制御することができます(したがって、 "key"と "value"の一般的な要素名を持つ必要はありません)。

+0

あなたの答えをありがとう。私はこれがあなた自身のすべてのマッピングを持っていたいと思うアプローチの1つだと思います。HasMap を定義している他のオプションは、実際に属性を持つconcete型になります。このようにして、WSDLは最初に定義したオブジェクトの型として値を表示します。 Objectの定義では、すべての属性が表示されます。 – Jha

関連する問題