1

Eclipse/AXIS2 POJO サービスを使用して任意の XML ドキュメントを返すにはどうすればよいですか?

背景の詳細​​については、次の質問を参照してください: Java Web Service returns string with > < > と < の代わりに

Web サービスをデプロイするために、サービスのインターフェースを定義するクラスを持つ動的 Web プロジェクトがあります。気になるメソッドは文字列型を返します。Web サービスを作成してデプロイするには、クラス (動的 Web プロジェクトに含まれる) を右クリックし、[Web サービスの作成] を選択します。ここでは、「ボトムアップ Java Bean Web サービス」が必要であり、サービスの実装が私の動的 Web プロジェクトのクラス。これにより、サービスが開始され、ポートとエンドポイントの定義を持つ WSDL が作成されます。

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

4

1 に答える 1

2

あなたが使っている技術やプロセスではできないと思います。

理想的には、a (またはそのフレームワークで同等の DOM オブジェクト) を返すだけorg.w3c.dom.Documentで、WSDL で「任意の」型を提供できますが、残念ながら、そのようには機能しないようです。AXIS2 は厳密に型指定されており、要求および応答データ用のデータ バインディング テクノロジ (ADB、XmlBeans、JiBX、場合によっては JAXB など) が必要です。AXIOM services<xsd:any>を介してand<xsd:anyType>要素をサポートしているようですが、それはあなたが使用しているものとは異なる実装スタイルです。

この興味深いディスカッション「不明な型をシリアル化できません」例外を参照してください。また、ここに関連する SO の質問AXiS2 - Problem in return the String value があります。< と > は < に変換されます。と >

于 2011-10-24T18:02:29.050 に答える