2011-10-28 26 views
4

我正在使用CXF 2.4和JAXB。全局註冊XmlAdapter以獲取不同包中的任何類

我可以爲我的owm類的所有實例(例如LWDate)擁有一個全局XmlAdapter嗎?眼下

public class LWDateAdapter extends XmlAdapter<Date, LWDate> 

我必須對我計劃CXF使用的每個PARAM,方法或包添加@XmlJavaTypeAdapter

我寫了一個類。例如。

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

我想請問CXF/JAXB總是結合我的課堂LWDate到java.util.Date這可能嗎?

更新:@XmlJavaTypeAdapter適用於從版本2.4.4 according to that issue盯着包級別。

回答

5

對於使用案例,在包級別使用@XmlJavaTypeAdapter註釋是最佳選擇。下面是我用這個策略,爲Joda-Time類帖子:

如果你有,你總是希望有XmlAdapter處理域類可以使用@XmlJavaTypeAdapter標註在類型級別:

+0

我在我的問題之前看過帖子。不幸的是,類型級別的註釋不適用於我(不知道爲什麼,無論是接口還是實現)。包級別有點weired方法恕我直言。 Jaxb 2.1(內置Sun JDK)。 – FoxyBOA

+1

根據問題https://issues.apache.org/jira/browse/CXF-3205程序包級別註釋現在不適用於CXF(將在下一個版本2.4.4中修復) – FoxyBOA

+0

@FoxyBOA - 如果您使用EclipseLink JAXB(MOXy)作爲JAXB提供者,您可以使用我們的JAXB元數據的XML表示形式:http://blog.bdoughan.com/2011/04/moxys-xml-metadata-in-jax-rs-service.html –