java - 如何通过 ssl 从 wsdl 生成 jax ws 工件

标签 java jax-ws wsimport

我需要从 wsdl 为我的 jaxws 客户端生成 jax ws 工件 我的代码如下:

String keystore = "D:\\mycert/mr.jks";
String storepass = "changeit";
String storetype = "JKS";

String[][] props = {
    {"javax.net.ssl.trustStore", keystore},
    {"javax.net.ssl.keyStore", keystore},
    {"javax.net.ssl.keyStorePassword", storepass},
    {"javax.net.ssl.keyStoreType", storetype}
};
for (String[] prop : props) {
    System.getProperties().setProperty(prop[0], prop[1]);
}
ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "wsimport -keep -verbose https://some.sw.somewhere.az:5555/?wsdl");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
    line = r.readLine();
    if (line == null) {
        break;
    }
    System.out.println(line);
}

正在解析 WSDL...

[ERROR] sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Failed to read the WSDL document: https://some.sw.somwhere.com:5555/?wsdl, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s): 

需要提供至少一个包含至少一个服务定义的 WSDL。 无法解析 WSDL。

最佳答案

我用 SOAPUI 解决了这个问题,source

关于java - 如何通过 ssl 从 wsdl 生成 jax ws 工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801315/

相关文章:

java - 在JNI中,有没有比jlong​​更可移植的方式来封装指针呢?

java - 如何使 JAX-WS web 服务响应 JSESSIONID( session ID)

java - 解码 Web 服务响应时出错

java - 如何建议 xjc 生成 Java List 而不是嵌套类

web-services - 在 SSL 上与 Web 服务通信

用于 JAX-WS org.codehaus.mojo 的 Eclipse m2e 连接器

Java:如何实现康威的生命游戏?

java - 在同一服务器内使用来自不同域的两个数据库

c# - 使用 wsimport 导入 .net webservice 时出错

java - MVC - 当内容类型是自定义的(不是应用程序/json)时接受 JSON