gpt4 book ai didi

java - 如何配置 JAXB 以在 JBoss 6 上使用 Woodstox?

转载 作者:行者123 更新时间:2023-12-02 11:17:39 26 4
gpt4 key购买 nike

我正在 JBoss 6 上部署 Java EE 6 JAX-RS Web 服务,并且我想使用 Woodstox而不是当前正在使用的任何 SAX/StAX 解析器。由于某些堆栈跟踪列出了(以及其他包中)中的类:

  • org.apache.xerces.parsers
  • org.apache.xerces.impl
  • org.apache.xerces.jaxp

...我猜它正在使用 Xerces .

我尝试添加 the necessary JARs ( woodstox-core-asl-4.1.1.jarstax2-api-3.1.1.jar )进入 EAR(部署在 /lib 目录中)以及 WAR(在 WEB-INF/lib 中),但这似乎没有影响任何东西,因为 XML 解析中的异常的堆栈跟踪仍然存在引用 Xerces 包。

我已经读过this question但我认为我已经尝试了上面的“将其添加到您的类路径”选项。我也已经尝试按照 this thread 添加以下虚拟机参数:

-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
-Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory
-Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory
-Dcom.sun.xml.ws.api.streaming.XMLStreamReaderFactory.woodstox=true
-Dcom.sun.xml.ws.api.streaming.XMLStreamWriterFactory.woodstox=true

我做错了什么?如何让 JAXB 使用 Woodstox 而不是(我认为)Xerces?

最佳答案

何时 EclipseLink JAXB (MOXy)创建一个 XMLStreamReader 它使用标准 API 来完成此操作,因此它应该获得适合您的环境的一个:

xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader);

话虽这么说,但前提是 JBoss JAX-RS 实现正在调用 MOXy 代码路径,该路径允许它创建自己的 XMLStreamReader(例如解码 InputStream),而不向其传递实际的 XMLStreamReader(JBoss 选择的) )。

关于java - 如何配置 JAXB 以在 JBoss 6 上使用 Woodstox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com