我正在尝试在 NetBeans 7.0.1 中添加对我的应用程序的 Web 服务引用。Metro web 服务受 SSL 保护,并且托管在我要运行客户端的同一台计算机上。我正在使用“新建 Web 服务客户端”向导,但是当我提交受 SSL 保护的 WSDL 时,我收到以下错误消息:
下载 wsdl 或模式文件时出现问题。
检查 URL、代理设置或服务器是否正在运行。
Metro 用户指南 -保护示例 Web 服务客户端应用程序 (SSL)状态:
在指示您将希望客户端使用的 Web 服务的 URL 剪切并粘贴到 WSDL URL 字段的步骤中,键入 https://fully-qualified-hostname:8181 /CalculatorApplication/CalculatorWSService?wsdl(更改以粗体表示)表示此客户端应使用安全端口引用 Web 服务。首次访问此服务时,请在出现提示时接受证书 (s1as)。这是弹出的服务器证书,以向客户端确认其身份。
在某些情况下,您可能会收到一个错误对话框,告诉您 URL https:// fully-qualified-hostname :8181/CalculatorApplication/CalculatorWSService?wsdl 无法下载。但是,这是正确的 URL,它会在您运行服务时加载。因此,当发生此错误时,请重复使用安全 WSDL 创建 Web 服务客户端的步骤。第二次创建 Web 服务引用,您可以继续创建客户端。
无论我尝试多少次,我仍然会收到相同的错误消息(没有设置代理并且服务器正在运行部署的服务)。接受证书后,WSDL 会显示在浏览器中。如果我输入基本 WSDL URL(没有 HTTPS 的 URL),向导会接受它并生成客户端。我需要做什么才能完成这项工作?
更新
如果我在不同的机器上运行客户端和服务,这同样适用。我正在使用默认的开发证书。检索器输出:
错误:发生 I/O 错误。sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径`
我必须在 VMargs 中设置密钥库和信任库吗?如果我想在包含 Web 服务的同一个 Web 应用程序中拥有此服务引用怎么办?