我正在使用 Apache 网络服务 xml rpc 库向 rpc 服务发出请求。该过程中的某处是一个 xml 文档,其中包含对 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd 的 DTD 引用,库在解析 XML 时尝试下载。该下载失败并显示 503 状态代码,因为 w3c 阻止从 Java 客户端重复下载这个主要是静态的文档。
解决方案是使用 XML 目录在本地缓存 DTD。然而,虽然我可以找到直接在 JAXP SAXParser 实例上设置 EntityHandler 以启用目录解析器支持的示例,但我实际上无法访问这里的底层解析器。它只是被 xml rpc 库使用。有什么方法可以设置全局属性或告诉 JAXP 使用 XML 目录的东西吗?
最佳答案
我认为您需要系统属性 xml.catalog.files
。
看看http://xml.apache.org/commons/components/resolver/resolver-article.html
顺便说一句,这是 Google 搜索 jaxp catalog
关于java - 将 XML 目录与内部使用 JAXP 的 Java 库一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3067735/