当在WAS之外使用我们的WebService(客户端)时(例如使用eclipse),它将连接没有问题,但不在WAS内部。我还创建了测试服务,该服务使用函数来打印其他方WebService(Server)wsdl。
public void testSSL() {
URL u;
InputStream is = null;
DataInputStream dis;
String s;
try {
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
System.setProperty("javax.net.ssl.keyStore", "/home/..."); //path to jks certificate
System.setProperty("javax.net.ssl.keyStorePassword", "******");
System.setProperty("javax.net.ssl.requireClientAuth", "true");
u = new URL("https://...?WSDL");
is = u.openStream(); // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));
while ((s = dis.readLine()) != null) {
System.out.println(s);
}
} catch (MalformedURLException mue) {
System.out.println("Ouch - a MalformedURLException happened.");
mue.printStackTrace();
System.exit(1);
} catch (IOException ioe) {
System.out.println("Oops- an IOException happened.");
ioe.printStackTrace();
System.exit(1);
} finally {
try {
is.close();
} catch (IOException ioe) {
// just going to ignore this one
}
} // end of 'finally' clause
}
答案 0 :(得分:0)
您的问题可能是因为Websphere服务器不信任远程服务器的证书。如果您的本地测试是在Windows上,则它将使用与Internet Explorer使用的密钥库相同的密钥库。
不要尝试使用System.SetProperty()在Java代码中配置密钥库,而是在Security>下查看Websphere管理控制台。 SSL证书和密钥管理>钥匙商店和证书
可能是您的Java代码被服务器自己的配置覆盖了。
如果你发布了例外情况,你会更容易提出建议。