- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有以下代码:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = inputFactory.createXMLStreamReader(inStream);
this.encoding = xmlStreamReader.getEncoding();
...
此代码在 JBoss 和 Websphere 中都运行良好,但是在特定的 JBoss 中抛出以下异常:
java.lang.ClassCastException: com.ctc.wstx.stax.WstxInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
at es.gema.core.shared.dim.data.XFacturaE.detectVersion(XFacturaE.java:115)
at es.gema.core.shared.dim.data.XFacturaE.<init>(XFacturaE.java:67)
at es.gema.core.shared.dim.bc.InvoiceLoader.readXMLInvoice(InvoiceLoader.java:544)
at es.gema.core.shared.dim.bc.InvoiceLoader.loadInvoiceFACE(InvoiceLoader.java:137)
at es.gema.core.expenses.fac.bc.InvoiceServicesBC.execute(InvoiceServicesBC.java:127)
at es.gema.core.expenses.fac.bc.InvoiceServicesBC.execute(InvoiceServicesBC.java:92)
检查 WstxInputFactory 我发现它扩展了 XMLInputFactory2 而不是 XMLInputFactory。
在这种情况下,推荐的方法是什么?在不使用工厂的情况下创建 WstxInputFactory 的实例,或者配置 Java 容器以返回扩展 XMLInputFactory 的解析器?
最佳答案
public abstract class XMLInputFactory2
extends javax.xml.stream.XMLInputFactory
因此 com.ctc.wstx.stax.WstxInputFactory
确实 扩展了 javax.xml.stream.XMLInputFactory
并且因此必须可转换为它.
但是既然你得到了这个异常,你一定遇到了类加载器问题。确保 javax.xml.stream.XMLInputFactory
由同一个类加载器加载。可能 JBoss/JDK 提供了一个,并且您的应用程序在类路径中也有一个 StAX。但很难说到底谁有罪。
关于java - StAX 解析器在运行时确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148130/
我知道使用sax时可以验证xml文件。但是我可以在使用Stax时进行验证吗? 最佳答案 SAX和DOM有两种XML验证方式: 单独验证-通过Validator.validate() 在解析期间验证-通
我在类路径中有一个 woodstox 和 java SE 1.6 stax 解析器,但默认情况下似乎选择了 woodstox。 但是在某些情况下,我想使用默认的 Java stax 解析器。有没有办法
我正面临 Woodstox STAX 和 java 1.6 STAX 实现之间奇怪的运行时冲突。由于我使用的是 CXF,它会将 Woodstox jar 作为其依赖项的一部分。这是我正在使用的示例代码
我正在尝试将一些代码从使用 DOM(通过 jDOM)转换为使用 StAX。同时,我正在从基于 DTD 的验证迁移到基于 XSD 的验证。哦,为了更好的衡量,我将 JAXB 引入等式 :) 无论如何,作
我不知道如何提取 XML 文件中的开始标记元素名称。我很接近〜意味着没有错误,我正在获取标签名称,但我正在获取标签名称加上信息。我得到的是: {http://www.publishing.org}au
对于下面发布的 xml 文件,我正在使用 StAX 来处理它。我写了下面的代码,但我不知道为什么尽管 xml 文件中有属性,但没有打印有关属性的信息。我希望控制台显示有关“id”、“lat”和“lon
我正在使用 StAX 来处理巨大的 xml 文件。如下面的代码所示,在 switch-case 中有一个默认条件。当我运行代码时默认情况下的文本打印以下内容: unhandled case4 case
我正在尝试使用 stax 从下面的 xml 中获取父项,请注意,同一结构中可以有多个父项和子项。 PARENT-CODE-1 PARENT-NAME-1
我有一个 xml <RPTSVC role:instanceID="765002" role:roleName="Re
是否有可能/是否有一种简单的方法可以找到与 START_ELEMENT 相对应的结束标记 (END_ELEMENT),如下所示? while(reader.hasNext()){ XM
我有以下(测试)XML 文件和使用 StaX 的 Java 代码。我想将此代码应用于大约 30 GB 大但元素相当小的文件,所以我认为 StaX 是一个不错的选择。我收到以下错误: 线程“main”中
我正在使用 java stax XMLStreamReader 来读取 xml。我想抓取某些内部节点的整个字符串。 XML: 我只想能够
我一直在尝试使用 StAX 创建一个 XML Controller 类。我的问题是我没有得到一个元素的完整字符串,而是得到了字符串的一小部分。 (请注意,出于安全原因,某些内容已被隐藏,这些内容将显示
我使用的是 java 6,rt.jar 具有进行基于 STaX 的解析所需的所有类。我主要使用以下类: import javax.xml.stream.XMLEventReader; import j
我正在使用 STAX 事件 API 读取从 SOAP 调用接收到的二进制数据,并希望将其流式传输给使用者。 SOAP 调用的 XML 有效负载如下所示: ......... PHNvY
我在来自 http://stax.codehaus.org/ 的 vrsion 1.2.0 中使用 StAX Streaming Api .当我尝试将以下 xml 写入文件时,不会转义大于 char
我正在使用以下简单的 StAX 代码循环访问 XML 中的所有标记。尺寸input.xml > 100 MB XMLInputFactory xif = XMLInputFactory.newInst
我正在读取与下面相同的 XML 文件: 我希望下面的代码打印出三个 e在屏幕上: XMLInputFactory factory = XMLInputFact
我有以下代码: XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamReade
我知道如何利用 java stax iterator api 来读取 xml 文档,但我想了解 XMLEvent 和 XMLEventReader 的实现。 XMLInputFactory xmlIn
我是一名优秀的程序员,十分优秀!