2010-01-22 26 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