2

jaxb アノテーションを使用してドメイン オブジェクトにアンマーシャリングしたい SOAP 応答を返す軸 1.4 Web サービスを使用しています。返されたメッセージの一部に multiRef 要素が含まれるまで、最初のテストは非常にうまく機能しました。multiRef を使用してマーシャリングされたオブジェクトが、クライアント側の注釈付きモデル オブジェクトで null として表示されていました。

私の質問は、JAXB は multiRef 要素を使用した SOAP 応答のアンマーシャリングをサポートしていますか? もしそうなら、どのように?そうでない場合は、軸 1.4 の SOAP 応答を Java のドメイン モデルにアンマーシャリングするより良い方法を知っている人はいますか?

4

3 に答える 3

1

Web サービスの場合、JAXB は単独ではなく、ws クライアント フレームワークのデータ バインディングの一部として提供されます。したがって、あなたの質問は、軸1.4内でJAXBをデータバインディングとして使用する方法だと思います。一般に、これを実現する簡単な方法はないと思います。axis-user メーリング リストの次のスレッドを参照してください: Specify JAXB generated complex types to Axis web service

axis2 を使用して Web サービスを使用するようにアップグレードできる場合、axis2 には統合された jaxb 実装を含むプラグ可能なデータ バインディング アーキテクチャが付属しているため、はるかに簡単になります。

于 2008-12-03T10:05:09.830 に答える
0

MultiREFを処理している場合は、おそらくRPCサービスを使用しています。JAXBは、ドキュメントスタイルのWebサービスに適しています。

RPCスタイルのサービスを利用するには、JAXB、JIBX、または

プレーンなJAX-RPCを使用すると、wsdl2java Antタスクを使用してスタブを生成し、nobindingオプションを指定できます。

于 2009-07-10T20:31:28.690 に答える
0

Web サービスの Axis 側も制御下にある場合は、プロパティorg.apache.axis.AxisEngine.PROP_DOMULTIREFSを false に設定できます。その場合、Axis は multiRef 要素を作成すべきではありません。クライアント側の Axis でこのプロパティを使用しましたが、サーバー側でも同じように機能することを願っています。

于 2009-01-14T20:42:07.440 に答える