如何使用wsdl,用户名/密码和PEM证书连接到SOAP服务?

时间:2018-11-19 09:32:40

标签: java soap wsdl certificate

我已经完成了使用SOAP服务发送/接收数据的任务。我已经获得了.wsdl文件,并使用wsdl2java创建了必要的代码。

当前,我尝试使用以下代码进行身份验证:

BindingProvider prov = (BindingProvider) port;
prov.getRequestContext().put(javax.xml.ws.BindingProvider.USERNAME_PROPERTY, "myUserName");
prov.getRequestContext().put(javax.xml.ws.BindingProvider.PASSWORD_PROPERTY, "myPassword");

我已将包含RSA PRIVATE和CERTIFICATE的证书导入到信任库中。

当前在尝试调用唯一操作时,出现以下异常:

javax.xml.ws.WebServiceException: Could not send Message.
Caused by: javax.net.ssl.SSLException: SSLException invoking https://...someurl.../V1/basichttp: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

当前代码:

SOAPService ss = new SOAPService();
Greeter port = ss.getSoapPort();
BindingProvider prov = (BindingProvider) port;
prov.getRequestContext().put(javax.xml.ws.BindingProvider.USERNAME_PROPERTY, "myUserName");
prov.getRequestContext().put(javax.xml.ws.BindingProvider.PASSWORD_PROPERTY, "myPassword");

String resp;
resp = port.sayHi();

任何人都知道我在这方面做错了什么,我们将不胜感激。

0 个答案:

没有答案