2011-02-09 14 views
1

オブジェクトをマーシャリングするときにJAXB 2の問題が発生しています。私は単体テストで完璧に動作するXmlJavaTypeAdapterを持っていますが、(JAX-WSを使用して)Webサービスから同じオブジェクトグラフをマーシャリングしようとすると、XmlJavaTypeAdapterは完全に無視されます。この問題をデバッグする最も簡単な方法は何ですか?JAXBの問題のデバッグ

私は、この問題を示す私のsvnリポジトリにチェックインされた簡単なスタンドアロンプ​​ロジェクトを持っています。私は間違って何かをしているかどうか見てみることができますか?プロジェクトのURLはhttp://archfirst.googlecode.com/svn/trunk/java/examples/jaxb-jaxws-sampleです。問題を詳細に説明するreadme.txtファイルがルートフォルダにあります。

ありがとうございました。

+0

どのようにJAXBContextを作成していますか? –

+0

私の単体テストでは、単にJAXBContextを実行しています。jaxbContext = JAXBContext.newInstance(Order.class);実際のアプリケーションでは、JAX-WS Webサービスが私のためにシリアライズを行っているため、わかりません。オブジェクトグラフ全体が横断されており、アダプタだけが見落とされています。 – Naresh

+0

小さなスタンドアロンサンプルを使用して問題を確認しました。この問題は、Webサービスがアダプタを見つけることができないことが明らかです。正確に同じオブジェクトは、JAXBを直接使用して正しくシリアライズされます。また、この問題は複数のジャーとは関係ありません。私のサンプルはすべて1つのプロジェクトにまとめられています。私のオープンソースプロジェクト(http://archfirst.googlecode.com/svn/trunk/java/examples/jaxb-jaxws-sample)を参照してください。私が間違ったことをしているかどうかを見てみてください。ありがとう。 – Naresh

答えて

2

私はようやく問題を発見しました。私の単体テストはJAXB実装をJavaランタイムで取得していましたが、WebサービスはGlassFishからJAXB実装を取得していました。明らかに、GlassFish(2.2.1.1)にバンドルされている実装は、私のユースケースを処理できません。私は単体テストにjaxb-impl-2.2.1.1.jarを使用させることによってそれを証明しました。また、このバグは最新のJAXB実装(2.2.3-1)で修正されているようですが、GlassFishの実装をこの新しいバージョンに置き換える方法を見つけるのには苦労しています(hereを参照)。