【问题标题】:Issue parsing XML when com.fasterxml.aalto-xml is in the Maven dependency当 com.fasterxml.aalto-xml 在 Maven 依赖项中时解析 XML 问题
【发布时间】:2015-09-04 04:00:13
【问题描述】:

我在使用库 com.fasterxml.aalto-xml 时遇到问题。

我有一个不依赖于库 com.fasterxml.aalto-xml 的项目 A(Dspace)。

我开发了一个库 B,它使用了一个依赖于 com.fasterxml.aalto-xml 的库 C。

我想知道为什么 com.fasterxml.aalto-xml 被添加为 通过 B -> C 对 A 的依赖,A 开始 com.fasterxml.aalto-xml 做他通常的 XML 解析。

问题在于,它破坏了应用程序。 com.fasterxml.aalto-xml 无法正确解析 A 最初附带的 XML。出了点问题。

我想了解为什么会这样。有没有办法告诉 A 不要使用 com.fasterxml.aalto-xml 但仍然有 B -> C -> com.fasterxml.aalto-xml 在 A 项目中工作。

这些 XML 解析器有什么特别之处?我只是不明白为什么 A 会选择 com.fasterxml.aalto-xml 来使用它,而它对它没有任何依赖。

我可以看到lib也是一个osgi bundle jar,这里有什么含义吗?

我的意思是最初 A (Dspace) 在没有中音的情况下工作并使用任何东西 它有解析器,既然它在依赖项中,为什么还要选择 alto 呢?什么机制允许这样做?

【问题讨论】:

    标签: java xml maven fasterxml


    【解决方案1】:

    com.fasterxml:aalto-xml 包含 StAX API 的实现。该 API(它是从 Java 6 开始的 JRE 的一部分)使用描述的服务提供者发现机制here 来定位实现。因此,只需将 Aalto JAR 添加到类路径中,就可以更改 StAX API 使用的实现。所有使用 StAX API 的库(在您的情况下为 A 和 C)都将受到同样的影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      • 2021-08-24
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多