问题标签 [woodstox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-services - CXF Web 服务客户端:“无法创建安全的 XMLInputFactory”
我使用此处的说明编写并部署了 CXF Web 服务到 Tomcat 服务器中。Web 服务部署良好,因为我可以在 Web 浏览器中看到 WSDL 文件。
但我的独立 Java 客户端程序不起作用。这是代码:
我将 CXF 2.7.7 发行版中的所有 jar 文件(包括 woodstox-core-asl-4.2.0.jar 文件)复制到客户端程序的类路径中,当我运行客户端时,出现以下异常:
我发现一个页面说“无法创建安全的 XMLInputFactory”可以通过将 org.apache.cxf.stax.allowInsecureParser 属性设置为“1”来修复,这就是我尝试在系统属性中设置它的原因,但这并没有不行。我还尝试将 -Dorg.apache.cxf.stax.allowInsecureParser=1 添加到运行客户端的 java 命令中,但这也不起作用。(也没有将其设置为“true”而不是 1。)关于如何解决此错误的任何想法?
java - Android 上的伍德斯托克斯
我以前使用本地 Java 1.6 Stax 解析器用 Java 编写了一个库。但是,我现在想将此库用于 Android,这意味着不支持此解析器。我想使用 Woodstox,因为它实现了 Stax 1.0 api,我不必重写我当前的任何代码,只需在依赖项中添加。
Android 没有 stax 1 api,所以我意识到我必须添加它。现在,我已将 woodstox-core-asl-4.2.0.jar、stax-api-1.0-2.jar 和 stax2-api-3.1.3.jar 添加到类路径中。一切都编译得很好,但是当我真正尝试运行一个依赖于这个库的 Android 应用程序时,我得到运行时错误,表明它没有使用 Woodstox 作为 stax 1 api 的实现。
我有什么误解或做错了吗?我错过了一个罐子吗?我已经彻底阅读了Woodstox 帮助页面,但找不到我遗漏的任何其他内容。
编辑:我开始怀疑是否真的可以在 Android 上使用 Woodstox。问题在于对 stax api 的依赖。经过一些研究后,我发现 Dalvik VM 似乎无法接受那些位于 javax.* 命名空间中的包。
java - com.ctc.wstx.sr.StreamScanner 的使用
我正在使用 woodstox-core-asl-4.1.0 过滤传入的 XML 以避免 DOS。但是我找不到任何教程来通过 Internet 甚至是http://woodstox.codehaus.org/的主页开始使用此 API 我有以下查询:-
- 如何传递保存 XML 数据的 InputStream ?
- 如何使用带有配置的 StreamScanner 类来设置最大属性计数?
寻找示例示例,演示如何使用woodstox API获取InputStream并处理它以及如何配置它以解决此用例检查任何 XML 元素的属性计数是否超过阈值
xml - 将 Stax 光标倒回到特定的光标位置?
我知道 StAX 是一个拉式解析...但我想知道是否有可能保存根光标位置/上下文..访问子光标...然后将根光标倒回到保存的位置/上下文?
谢谢
java - 使用 XMLScanner 反序列化 xml 导致输出字符串更大
我们的产品升级过程包括将旧模式数据库导出到文件(JAXB 序列化),然后导入到新模式(StAX + JAXB)。有时,由于值超出其最大大小导致的插入错误,升级失败,尽管它们先前是从同一个数据库表中导出的。
这发生在反序列化 xml 时(在这种情况下是 Jaxb,但它与 Jaxb 无关)并且其中一个属性具有高代理 UTF-8 字符序列的值,SAX 解析器存在导致输出字符串更大的错误:
3 个字符 -> (1+2+3=) 6 个字符。
6 个字符 -> (1+2+3+4+5+6=) 21 个字符。
(源字符的算术级数)
该代码来自 java 1.7_45 代码类 com.sun.org.apache.xerces.internal.impl.XMLScanner 行:976 - 981:
循环之间不清除fStringBuffer3缓冲区。
com.sun.org.apache.xerces.internal.impl.XML11DocumentScannerImpl 行中存在类似的代码(相同的方法名称):369 - 375。但是这次在循环期间清除了缓冲区:
我检查了 java bug 数据库,那里没有提到这个 bug。所以我正在寻找解决这个问题的方法,用 Woodstox 解析器替换 JAXB 解析器解决了这个错误,不幸的是它现在对我们来说太冒险了。
我的代码的一般模式是(返回从文件反序列化的对象的方法的一部分):
有人遇到过这个问题吗?有什么方法可以让我的代码使用第二段代码而不使用 XML 1.1 版?
xml-parsing - Woodstox stax 空字符
我有这样的元素
但在我的 switch 语句中
没有被调用。知道如何获得此活动吗?
java - 编组到 XML 时的 FasterXML 问题
我正在尝试使用 jackson-dataformat-xml 和 woodstax 将对象编组为 XML,但它添加了额外的命名空间前缀 wstxns1。有什么建议么 ?
我的 Beans 如下所示
xml - 将 Woodstox 与 Spring-WS 一起使用
当 Spring-WS 与 JAXB 一起用于编组和解组时,内部使用哪个流实现?
通读 SO 查询,发现 Woodstox 比 JAXB 快。然而,当我使用 Spring-WS 时,Spring 从字面上处理了编组和解组期间发生的所有事情。
问题是如何强制 Spring-WS 使用 Woodstox 流 API?
java - Woodstox Stax2 XML W3C 模式验证 - 唯一约束问题
我一直在尝试提高针对 XSD 模式的 XML 验证性能,特别是在 XSD 唯一约束方面,并决定尝试Woodstox。我几乎遵循这个例子,在某种程度上我改变XMLValidationSchema.SCHEMA_ID_DTD
了XMLValidationSchema.SCHEMA_ID_W3C_SCHEMA
。
但是,我遇到的问题是,即使 XML 违反了唯一约束,Woodstox 验证器也会发现 XML 有效。将我的 java 代码切换回“常规” javax.xml.validation.Schema
, javax.xml.stream.XMLStreamReader
,并且javax.xml.validation.Validator
正确检测到唯一性约束违规。
此外,我可以确认 Woodstox 验证器做了一些事情,因为例如,如果我有一个负数,而 XML 中的 XSD 预期为正数,我可以看到它说“XML 无效”。
这可能是因为我到目前为止一直使用的工具在对不合格元素的唯一性检查方面很好,而 Woodstox 不是吗?这是我脑海中唯一的想法...
此外,是否有人能够确认 Woodstox 会比基于 Xerces 的工具(Java 中存在的几乎所有东西?)更好地验证独特的约束?
非常感谢任何帮助!
java - 为什么伍德斯托克斯需要这么多内存?
我正在开发基于服务器端 Spring 的应用程序。我们正在使用 JAXB、SOAP 和 Axiom(包装在 Spring WS 中),它们使用 Woodstox 编组/解组 xml 消息,但是我们的应用程序在垃圾处理方面存在问题。我们只发送 165 Mb 的消息,但 Marshaller 产生了大约 920 Mb 的垃圾。也许有人知道,为什么收集的垃圾这么大,我该如何改善呢?