我需要从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。