Java 使用stax2 api时出现的问题

Java 使用stax2 api时出现的问题,java,xml,maven,stax,Java,Xml,Maven,Stax,我想知道是否有人熟悉stax api,尤其是stax2 api 我的申请中有一个奇怪的行为 我有一个依赖于Java.xml.stream的应用程序:stax-1.0-2 然而,当我将org.codehaus.woodstox:stax2 api放入我的依赖项时,甚至还没有使用它,应用程序就切换到使用stax2 api Stax2 api在github上的显示方式如下: STAX2API是通过遵循STAXXML在本机实现的 实施: Woodstox Aalto此外,Stax2 API包含包装器实现

我想知道是否有人熟悉stax api,尤其是stax2 api

我的申请中有一个奇怪的行为

我有一个依赖于Java.xml.stream的应用程序:stax-1.0-2

然而,当我将org.codehaus.woodstox:stax2 api放入我的依赖项时,甚至还没有使用它,应用程序就切换到使用stax2 api

Stax2 api在github上的显示方式如下:

STAX2API是通过遵循STAXXML在本机实现的 实施:

Woodstox Aalto此外,Stax2 API包含包装器实现 可用于支持常规Stax上的大多数API 像Sun SJSXP这样的实现(默认的Stax实现捆绑) 使用JDK1.6和1.7)

API类位于org.codehaus.stax2包中。

Stax2 API also contains partial Reference Implementation of many of API classes, under org.codehaus.stax2.ri: intention is to make it as painless as possible for Java Stax parser to implement full Stax2 support.

<dependency>
  <groupId>org.codehaus.woodstox</groupId>
  <artifactId>stax2-api</artifactId>
  <version>3.1.2</version>
</dependency>
Stax2 API还包含许多API类的部分参考实现,位于org.codehaus.Stax2.ri下:目的是让Java Stax解析器尽可能轻松地实现完整的Stax2支持。
org.codehaus.woodstox
stax2 api
3.1.2
stax2的依赖关系如下所示:

    <dependencies>
            <!-- Since baseline with 4.0 is Java5, we still need to officially keep this in;
                 should drop once we go up to Java6 or 7
              -->
            <dependency>
              <groupId>javax.xml.stream</groupId>
              <artifactId>stax-api</artifactId>
              <version>1.0-2</version>
              <!-- at this point, with inclusion in JDK 1.6, this should be given -->
              <scope>provided</scope>
            </dependency>
  </dependencies>

javax.xml.stream
斯塔克斯api
1.0-2
假如
应该注意的是,我的应用程序A在其对Java.xml.stream:stax-1.0-2的原始依赖关系下运行良好。

Stax2 API also contains partial Reference Implementation of many of API classes, under org.codehaus.stax2.ri: intention is to make it as painless as possible for Java Stax parser to implement full Stax2 support.

<dependency>
  <groupId>org.codehaus.woodstox</groupId>
  <artifactId>stax2-api</artifactId>
  <version>3.1.2</version>
</dependency>

任何关于为什么使用stax2而不是stax的想法。

这个问题没有任何意义:
stax2 api
只是实现可以选择实现的api扩展。它对任何其他事物都没有权力;不会自动注册任何内容

您可能会发现,在类路径中包含任何Stax实现都会导致添加SPI(META-INF/services/),这可能会更改加载的实际Stax实现,除非您指定所需的实现(如调用
XMLInputFactory.newFactory()
)。
但这与Stax2 API jar无关。

您能解释一下“应用程序切换[sic]到使用Stax2 API”的确切含义吗?我放弃了这一点,我将使用另一个库。但在我将解释的情况下,stax2api有一个staxapi的部分参考实现。图书馆的老板告诉我,看起来唯一可能的是阴影。因为在stax2api中有一些包被认为将取代staxapi包。你可能误解了他说的话(或者我误解了你说的话),因为stax2 api与stax api没有任何相同的包。因此,着色不会改变任何东西。