如何配置JAX-WS使用的XML解析器行为

4
我的意图是阻止XML解析器引用请求XML开头的DOCTYPE部分中定义的外部实体,但我也希望能够更普遍地配置JAX-WS运行时使用的XML解析器。通过查看可用的JAX-WS文档(不正式、不完整,“不”在很多方面),我找不到一种向JAX-WS表达我的配置要求的方法。如果有这样的方式,那就太好了,因为我就不必处理底层内容了。
通过用螺丝刀卡住齿轮,发现它使用StAX。这意味着我可以使用javax.xml.stream.XMLInputFactory及其setProperty(String, Object)方法进行配置,但我需要使用JAX-WS来做到这一点。设置JVM启动时的系统属性并不能起到作用;属性需要设置在JAX-WS所使用的实例上。
因此,要么有一种我不知道的配置JAX-WS XML解析器的方法,要么我将不得不深入研究JAX-WS的内部结构,以某种方式获取解析器并直接进行配置。后者将非常无聊。
编辑:我指的是Sun/Oracle JDK中提供的标准JAX-WS实现。我使用的是Java 1.6.0 Update 24版本。我想这一定是RI。

由于JAX-WS库很常见,解决方案可能会依赖于实现。如果您有特定的运行时环境,请提及它将是值得的。 - McDowell
1个回答

0

我建议你可以使用XStream来完成同样的任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接