在我当前的项目中,我们的目标是JDK 1.6 Runtime环境.对于传统rasons,Xerces JAR文件捆绑在应用程序中.
这些不再需要了吗?JDK(有一段时间)在JDK中捆绑了XML解析库吗?
sva*_*aor 21
这些XML服务使用所谓的"服务提供者"机制插入应用程序环境.
它的工作原理如下:
-Djavax.xml.parsers.SAXParserFactory=<some class>.FactoryFinder在特殊属性文件中查找属性.例如${java.home}/lib/jaxp.properties.META-INF/services/<some service>,例如META-INF/services/javax.xml.parsers.SAXParserFactory.例如,它是一个应包含工厂类名的文件org.apache.xerces.jaxp.SAXParserFactoryImpl.因此,如果您没有指向明显工厂类的系统属性,那么java将悄然选择合适的实现方式.
Mic*_*Kay 11
JDK中的解析器是Xerces的一个分支,但它非常错误.我建议生产应用程序始终优先使用Apache版本的解析器.这些错误是罕见的,但它们是不可预测的,它们不仅影响在现实生活中看不到的角落情况; 我见过许多情况,其中解析相当无聊的XML文档,并将损坏的数据传递给应用程序以获取属性值.Sun/Oracle没有表现出解决问题的兴趣.每次都使用Apache Xerces.
更新(2018年)
在我看来,JDK版本的Xerces的问题似乎已经在Java 8中解决了,所以这个建议已经过时了.
| 归档时间: |
|
| 查看次数: |
21284 次 |
| 最近记录: |