2011-10-24 5 views
1

Eclipse/AXIS2 POJOサービスを使用して任意のXMLドキュメントを返すにはどうすればよいですか?完全な背景の詳細​​についてはEclipse/AXIS2 POJOサービスを使用して任意のXMLドキュメントを返す方法

、この質問を参照してください。 Java Web Service returns string with &gt; and &lt; instead of > and <

は、Webサービスを展開するには、私は私のサービスのインタフェースを定義するクラスと動的Webプロジェクトを持っています。私が関係するメソッドはString型を返します。 Webサービスを作成してデプロイするには、クラス(動的Webプロジェクトに含まれています)を右クリックし、「Create Web Service」を選択します。ここでは「Bottom up Java Bean Webサービス」が必要です。私のダイナミックなWebプロジェクトのクラスです。これでサービスが開始され、ポートとエンドポイントの定義を持つWSDLが作成されます。

wsdlのtypesセクションは、サービスになるコードに基づいて自動的に生成されます。 intrestの関数は、返すXMLを保持するorg.w3c.DOM.Documentを持っています。 Documentオブジェクトはシリアル化されておらず、パブリックコンストラクタもないため、このDocumentは文字列に変換されて返されます。サービスコールを通じてXML構造を保持する関数の戻り値の型として別の型を使用できますか?

答えて

2

私はそれがあなたが使用している技術とプロセスを介して行うことはできないと思います。

org.w3c.dom.Document(またはそのフレームワークに匹敵するDOMオブジェクト)を返すだけで、WSDLに「any」タイプが供給されることは理想的ですが、残念ながらそのようには動作しません。 AXIS2は強く型付けされており、要求および応答データ用のデータバインディング技術(ADB、XmlBeans、JiBX、JAXBなど)が必要です。 <xsd:any><xsd:anyType>要素はAXIOM services経由でサポートされているようですが、これは使用している実装スタイルとは異なります。

この興味深い議論を参照してください"Unknown type can not serialize" Exception。また、ここに関連する質問があります。AXiS2 - Problem in returning the String value. <and> are getting converted to &lt; and &gt;

+0

あなたが提供したAXIS2リンクは、私の状況について非常にうまくやっていることを説明しました。ありがとうございます。適切なリターンレスポンスを可能にするために私は現在サービスコールの構造を変更しています。 – Sababado

関連する問題