我的目的是防止 XML 解析器引用在请求 XML 开头的 DOCTYPE 部分中定义的外部实体,但我感兴趣的是能够更普遍地配置 JAX-WS 使用的 XML 解析器运行时。
通过可用的 JAX-WS 文档(不是正式的、不完整的,在很多方面“不”),我找不到一种方法来表达我对 JAX-WS 的配置要求。那太好了,因为我不必处理下面的内容。
用 Screwdriver 卡住齿轮表明它使用了 StAX。这意味着我可以使用 javax.xml.stream.XMLInputFactory
及其 setProperty(String, Object)
方法来配置它,但我需要特定 JAX-WS 使用的 XMLInputFactory 实例来执行此操作。在 JVM 启动时设置系统属性并不能解决问题;需要在 JAX-WS 使用的实例上设置属性。
所以,要么有一些我不知道的配置 JAX-WS 的 XML 解析器的方法,要么我将不得不深入研究 JAX-WS 的内部结构以某种方式掌握解析器并直接配置它。后者会很蹩脚。
编辑:我指的是 Sun/Oracle JDK 中存在的标准 JAX-WS 实现。我正在使用 Java 1.6.0 Update 24。我想这一定是注册机。
最佳答案
我建议您更好地使用 XStream。
关于java - 如何配置 JAX-WS 使用的 XML 解析器的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448433/