java - 由于 XSD 上的 HTTPS 而导致的 wsimport schema_reference 警告

标签 java web-services https wsimport jaxp

我在 Windows 7 的命令提示符下运行 JDK 1.8.0_51 wsimport。通过 HTTPS 访问 WSDL URL:

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 中提供的解决方案进行操作通过使用 javax.xml.accessExternalSchema=all 创建一个 jaxp.properties 文件并将该文件放在 %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 协议(protocol)?似乎没有任何 wsimport 命令行选项来传达这样的设置。

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

最佳答案

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

关于java - 由于 XSD 上的 HTTPS 而导致的 wsimport schema_reference 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996694/

相关文章:

java - 带 APR 的 Tomcat 仍然说 aprConnector 是假的

java - 在 JPA 中获取数据库模式名称(来自 EntityManager/EntityManagerFactory)

Java 和 PHP 运行时通信

web-services - 网络服务测试

java - REST:如何构建一个以参数作为第一个标记的请求路径?

Spring安全HTTPS

java - 合并两个完美的二进制堆?

java - 从另一个线程加载数据,线程安全吗?

java - 如何从java动态Web应用程序访问资源文件

https - wget、自签名证书和自定义 HTTPS 服务器