我已经使用wsdl2java创建了使用Web服务的存根类,但我需要为传输指定客户端证书。我该怎么做?
在.NET中,我习惯于在拨打电话之前将X509Certificate对象直接附加到类似的存根类。
答案 0 :(得分:1)
在Java中,您有几个选择:
java.net.ssl*
参数以设置证书存储区,密码等。您需要使用keytool
来设置这些对象。这是代码,或者可以在命令行中使用-D指定这些代码。请注意,这些将是您应用的全局。
System.setProperty("javax.net.ssl.keyStore", "myKeyStore.p12");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
SSLFactory
,用于在较低级别配置您的证书并将其设置在您的WS上下文中。你可以google为此找到很多信息。还要检查this question(作者说它适用于JAX-RPC,但在评论中他改变了对JAX-WS的影响)。您可以在JSSE docs(这适用于java 1.5)中找到更多信息。