gpt4 book ai didi

java - SOAP Web服务需要在java中使用https协议(protocol)发送请求

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:25 24 4
gpt4 key购买 nike

我需要使用 https 协议(protocol)向我的网络服务发送请求。使用 SOAP UI 它工作正常并为 https 请求提供响应,但是如果我发送 https 请求,它会提供以下异常javax.xml.ws.WebServiceException:无法访问 WSDL:https://abc:8443/xyz/FileTransferService?wsdl 。它失败了:

    sun.security.validator.ValidatorException: PKIX path building failed:       sun.security.provider.certpath.SunCertPathBuilderException: unable to find   valid certification path to requested target.
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:184)
at ##com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:166)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:131)
at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:267)
at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:230)

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1497)

最佳答案

如果您想使用 https,只需先下载 wsdl,然后使生成的客户端类中的 wsdlLocation 和 url 指向该文件。

或者像这样生成你的客户端

URL url = new URL("https://......?wsdl");
QName qname = new QName("NameSpace of the Service", "ServiceName");
Service service = Service.create(url, qname);

ServiceClass port= service.getPort(ServiceClass.class);

然后您就可以开始使用该端口了。

您可以在网站中找到后一个示例。

http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat-ssl-connection/

哦,我忘了一件事。您必须在 java keystore 中添加信任 key 。以下网站展示了执行此操作的方法。

http://java.globinch.com/enterprise-java/security/pkix-path-building-failed-validation-sun-security-validatorexception/

关于java - SOAP Web服务需要在java中使用https协议(protocol)发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35984424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com