1

Axis2 java2wsdl ツールを使用していくつかのテストを行って、簡単な Web サービスを作成しています。

最初に作成したものには、入力として 2 つの float を使用する単純な add メソッドがあります。java2wsdl コマンドで問題なく WSDL ドキュメントが作成されました。次に、String 配列を返すメソッドを持つ別のサービスを作成しましたが、ツールが生成した WSDL データ型に問題がありました。

java2wsdl は以下を生成します:

`<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"`/>

そして、soapUIクライアントでエラーが発生しました:「タイプをシリアル化できません」

「手動で」次のように変更しました。

<xs:element maxOccurs="unbounded" name="return" type="xs:string"/> 

そしてそれはうまくいきました。

Java ソース コードは次のとおりです。

package Base;

public interface Base
{
 public String[] getNames();    
}

そのため、ツールがそのマッピング (String[] から xs:anyType へ) を行った理由がわかりません。

axis2 の java2esdl が正しいデータ型を作成するように、Java コードを記述する必要がある特別な方法はありますか?

ありがとう。

4

1 に答える 1

1

タイプを xs:anyType として指定する場合は、入力メッセージ内で xs:type 属性を使用して正確な XSD タイプを提供する必要があります。そうしないと、着信メッセージのタイプを識別できません。これはあなたに役立つかもしれませんhttp://ssagara.blogspot.com/2011/07/how-to-get-best-use-of-axis2-object.html

于 2012-04-26T11:35:40.393 に答える