如何指定使用哪个 stax 解析器
我的类路径中有一个 woodstox 和 java SE 1.6 stax 解析器,但 woodstox 似乎默认被选中。 然而,在某些情况下,我想使用默认的 Java stax 解析器。有没有办法指定使用哪个实现?
I have a woodstox and and java SE 1.6 stax parser in the classpath but woodstox seems to get selected by default.
However in certain cases I'd like to use the default Java stax parser. Is there any way to specify which implementation to use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最简单的方法是直接实例化你想要的——不需要使用 XMLInputFactory.newInstance() ;对于 Woodstox,您需要实例化 com.ctc.wstx.stax.WstxInputFactory。对于 Sun 实现,它是其他东西(com.sun.sjsxp 等)——如果当 Woodstox jar 不在类路径中时通过 Stax API 实例化它,您可以看到类名称。
但如果您绝对想使用间接寻址,则使用系统属性“javax.xml.stream.XMLInputFactory”的值,根据 javadocs:值是要实例化的类的名称。
Easiest way is to just directly instantiate one you want -- there is no need to use
XMLInputFactory.newInstance()
; for Woodstox you would instantiatecom.ctc.wstx.stax.WstxInputFactory
. For Sun implementation it is something else (com.sun.sjsxp or such) -- you can see class name if you instantiate it via Stax API when Woodstox jar is not in classpath.But if you absolutely want to use indirection, value of system property "javax.xml.stream.XMLInputFactory" is used, as per javadocs: value is the name of class to instantiate.
我遇到了类似的问题,我的本地 jboss 路径中有 woodstox,但远程服务器没有(或者某些内容配置不正确)。所以我选择实例化参考实现:
I had a similar problem, my local jboss has woodstox in the path but the remote server don't (or something is not properly configured). So I chose to instantiate the reference implementation: