2011-10-28 7 views
4

JAXBでCXF 2.4を使用しています。異なるパッケージ内の任意のクラスに対してXmlAdapterをグローバルに登録する

私のowmクラス(例:LWDate)のすべてのインスタンスに対してグローバルなXmlAdapterがありますか?

私はクラスを書いた:

public class LWDateAdapter extends XmlAdapter<Date, LWDate> 

今私は、私はCXFを使用する予定の各param、方法やパッケージに@XmlJavaTypeAdapterを追加する必要があります。例えば。私はいつもjava.util.Dateに私のクラスのLWDateをバインドCXF/JAXBをお願いしたい

@WebMethod void test (@WebParam(name="Birthdate") @XmlJavaTypeAdapter(LWDateAdapter.class) LWDate pBirthdate){} 

は、それは可能ですか?

更新日:@XmlJavaTypeAdapterは、バージョン2.4.4 according to that issueから始まるパッケージレベルで動作します。

答えて

5

パッケージレベルで@XmlJavaTypeAdapter注釈を使用するユースケースについては、最適なオプションです。あなたはいつもあなたがで@XmlJavaTypeAdapterアノテーションを使用することができますXmlAdapterで扱うことにしたいドメイン・クラスがある場合

:以下は、私はJoda-Timeクラスのために、この戦略を使用する投稿はありタイプレベル:

+0

私は質問の前に投稿を見た。残念ながら、タイプ・レベルの注釈は私のためには機能しません(理由も考えられず、インターフェースも実装もありません)。パッケージレベルは、少しばかりのアプローチIMHOです。 Jaxb 2.1(Sun JDKに組み込まれています)。 – FoxyBOA

+1

https://issues.apache.org/jira/browse/CXF-3205の問題によると、パッケージレベルの注釈はCXFでは動作しません(次のバージョン2.4.4で修正予定) – FoxyBOA

+0

@FoxyBOA - 使用する場合JAXBプロバイダとしてのEclipseLink JAXB(MOXy)では、JAXBメタデータのXML表現を使用できます。http://blog.bdoughan.com/2011/04/moxys-xml-metadata-in-jax-rs-service.html –

関連する問題