是否可以切换 native 解析器,我认为它是基于 Java 反射的。我们有一些性能问题,想知道我们是否可以切换实现。
非常感谢您的建议。
附加信息:这是继承的代码,我们需要修复网络服务中的性能问题。我正在寻找无需更改代码的性能提升。现有代码使用 JAXB 编码和解码通过 CXF(wsdl 到 java)生成的 java 对象。
我的目标是将实现切换到 sTax,然后使用 Woodstox 库。
最佳答案
如果您的 JAXB 实现通过标准 JAXP API 在幕后使用 StAX 解析器,则添加 Woodstox将 .jar 添加到您的类路径应该会导致您的 JAXB impl 使用 Woodstox。通过这样做,您应该会看到性能提升。
自 Woodstox jar 包含以下条目,将它添加到类路径将允许 JAXP API 返回它的一个实例:
- META-INF/services/javax.xml.stream.XMLInputFactory
- META-INF/services/javax.xml.stream.XMLOuputFactory
注:我领EclipseLink JAXB (MOXy) , 并且 MOXy 在可用时使用 StAX 解析器。其他 JAXB 实现(Metro、JaxMe)可能做同样的事情。
关于java - JAXB 使用 Woodstox 解析器来提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477842/