我需要通过https致电wsdl。
从提供者那里我得到了x.p12
文件和x.crt文件。
如何配置Java密钥库和Trustore?
我正在使用Java 1.6(32位)。
我设置了keystore = x.p12
并将x.crt导入了x.jks,但这对我不起作用。
这是代码:
System.setProperty("javax.net.ssl.trustStore", "C:\\java\\java6u45\\jre\\lib\\security\\x");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.keyStore", "C:\\Users\\user\\Desktop\\SoapUI (1)\\SoapUI\\x.p12");
System.setProperty("javax.net.ssl.keyStorePassword", "passX!");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
URL u = null;
try {
u = new URL("https://x1/x2WS/x3?wsdl");
} catch(Exception ex) {
ex.printStackTrace();
}
JobInput2Service service = new JobInput2Service(u);
JobInput2 job = service.getJobInput2Port();
try {
HelloRequestParm parm = new HelloRequestParm();
parm.setMessage("value");
HelloResponseData res = job.sayHello(parm);
System.out.print("\n res: "+res.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
}
我得到: 引起原因:java.lang.RuntimeException:无法生成DH密钥对 java.security.InvalidAlgorithmParameterException:素数必须是64的倍数,并且只能在512到1024(含)范围内