2012-11-29 21 views
1

儘管我已經在MOXY工廠中添加了jaxb.properties,並且我看到JAXB已切換到moxy,但CXF在JAXBUtils類中有一個名爲createRIContext的方法,該方法加載硬編碼太陽JAXB的實現。
有沒有辦法覆蓋它,並使用moxy來代替? 有問題的代碼如下:配置CXF JAX-WS服務與MOXY一起工作

// fall back if we're using another jaxb implementation 
try { 
    riContext = JAXBUtils.createRIContext(contextClasses 
       .toArray(new Class[contextClasses.size()]), tns); 
} 

IT負載硬編碼的「com.sun.xml.bind.v2.ContextFactory」類,並用它來創建一個JAXB上下文。

+0

的可能重複[如何在Web服務中使用莫西的XPath註釋豆?](http://stackoverflow.com/questions/13474816/how -xyx-xpath-annotated-beans-in-web-services) –

+0

感謝您的鏈接,但是您提供的鏈接討論了其他實現,而我的問題特別針對CXF集成問題。另外,直接處理xml的想法(正如那裏提出的那樣)對我來說不是一個好方向。 –

+0

問題在於JAX-WS(JSR-224)實現具有專有掛鉤到他們用於XML綁定的JAXB(JSR-222)實現中。 'Provider'機制是一種標準的JAX-WS機制,可以插入您自己的綁定解決方案,這將允許您利用EclipseLink JAXB(MOXy)。 WebLogic和GlassFish中的JAX-WS實現支持MOXy。 –

回答

1

CXF的3.0.0-milestone2版本應該能夠處理Moxy相當好一點。也就是說,Moxy中還存在一些錯誤,它們阻止了所有CXF單元和系統測試的通過,所以我們對Moxy的信心水平與我們對JAXB RI的信心水平一樣。

(與測試3.0.0任何幫助,將不勝感激)