JAXWS。 ClientTransportException:服务器发送HTTP状态403

时间:2015-01-29 13:40:52

标签: java web-services soap jax-ws

我已经使用wsimport从wsdl生成了类,wsdl位置:https://somehost/wsdl。这一代没有问题。 但是当我尝试发送肥皂请求时,我收到了异常:

com.sun.xml.internal.ws.client.ClientTransportException:服务器发送HTTP状态码403:需要客户端证书

我发现,在网上冲浪,我必须在我的密钥库中添加证书。我已经做到了,但这并没有帮助。 我不知道该怎么做,甚至不知道谷歌。

任何人都可以帮助我吗?(

1 个答案:

答案 0 :(得分:1)

这听起来像mutual authentication问题。

服务器要求您的客户使用已知的数字证书对您的邮件进行签名,并在请求中发送该信息。它就像一个用户/密码机制,但您和服务器同意使用已知的密钥对进行识别。

这种情况通常意味着Web服务服务器管理员将生成密钥对并将证书的私有部分发送给您。

但如果您自己创建了公共证书,也可以为他发送公共证书。服务器必须能够访问公共证书,并且您可能必须将其发布到证书颁发机构。在某些情况下,它必须是商业证书(您必须购买)。

然后,您将使用私钥对邮件进行数字签名。

我找到了一些可能有用的链接:

如果您已经执行了这些步骤,那么您的实施有问题,或者提供的证书/密钥无效。

我建议您在尝试连接到实际服务之前使用模拟服务器来确保正确实现客户端身份验证。使其在本地工作将设置调用实际功能所需的知识。您也可以要求Web服务管理员向您发送调试信息。