由于 XSD 上的 HTTPS,wsimport schema_reference 警告

wsimport schema_reference warning due to HTTPS on XSD

我是 运行 JDK 1.8.0_51 wsimport Windows 7. WSDL URL 通过 HTTPS 访问:

wsimport -keep -Xnocompile https://...?wsdl

WSDL 包含对也通过 HTTPS 访问的 XSD 的引用:

...schemaLocation="https://...?xsd=1"

我收到此警告:

[WARNING] schema_reference: Failed to read schema document '...?xsd=1', because 'https' access is not allowed due to restriction set by the accessExternalSchema property.

该工具确实生成了客户端 Java 代码,但我不确定此代码是否正确。

我试图按照 WebService Client Generation Error with JDK8 中提供的解决方案创建一个 jaxp.properties 文件 javax.xml.accessExternalSchema=all 并将此文件放在 %JAVA_HOME%\jre\lib.没有效果。

我也试过把这个文件放在其他子目录下,比如%JAVA_HOME%\lib(在http://docs.oracle.com/javase/7/docs/api/javax/xml/XMLConstants.html#ACCESS_EXTERNAL_SCHEMA中有提到),和%JAVA_HOME%\bin , 都无济于事。

所以,问题归结为:如何在 wsimport 的上下文中指示 JAXP 允许 HTTPS 协议?似乎没有任何 wsimport 命令行选项来传达这样的设置。

关于如何完成此操作还有其他建议吗?

自从我问了这个问题,我就无法摆脱 wsimport 警告;我只是忽略了它。虽然我没有观察到任何不利影响,但我仍然不能 100% 确信生成的代码是正确和最佳的,因为 XSD 没有被读取。

尝试添加选项 -J-Djavax.xml.accessExternalSchema=all