2010-01-22 65 views
2

JDK 1.6包含通過JAX-WS API使用FastInfoset Web服務的功能。這些的實現都是內部com.sun.xml.internal深藏不露,與旨在把對上帝的敬畏到任何明智的Java開發包的名稱(如com.sun.xml.internal.fastinfoset.stax.StAXDocumentParser(實現XMLStreamReader)和com.sun.xml.internal.fastinfoset.stax.StAXDocumentSerializer(實現XMLStreamWriter)。抓住FastInfoset讀取器和編寫器

我的理解是,使用這些FastInfoset實現是內部JAX-WS內容協商邏輯的一部分,因此不會暴露給公共API。但是,我想明確使用FastInfoset實現,使用它們的公共STAX接口,並且可以通過public工廠級,而不是直接參考這些內部包。

有誰知道這個設施是否可用,也許通過標準的STAX工廠?

回答

2

XMLInputFactoryXMLOutputFactory似乎是合理的。

在我的環境中,每個實現都有三個實現,其中一個是cxf(排除),一個來自codehaus(排除),另一個來自您所指的快速Infoset包。

我發現這使用Eclipse的「參考」,因爲javadoc不包括「使用」部分。

+0

但是那些工廠只會讓你回到他們認爲最好的實現,你不能說「我想要一個FastInfoset實現」......或者你可以嗎? – skaffman 2010-01-22 15:27:53

+0

我認爲你不能 - 他們使用靜態的FactoryFinder.find方法。但我認爲他們應該回報你所需要的。 – Bozho 2010-01-22 15:37:47

+0

看起來我需要在使用'XMLInputFactory.newFactory()'時傳入FastInfoset實現的類名。這並不比直接實例化好很多,但它是朝着正確方向邁出的一步。 – skaffman 2010-01-22 15:44:05