【问题标题】:Calling a HTTPS SOAP web service from a java client从 Java 客户端调用 HTTPS SOAP Web 服务
【发布时间】:2017-09-09 05:40:17
【问题描述】:

从 java 客户端调用 soap https web 服务时出现以下错误。谁能指出我如何解决这个问题的正确方向。我一直在寻找解决这个问题的方法,但似乎没有一个能够给我一个出路。

   Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection timed out: connect
    at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:117)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:208)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:130)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:1121)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:1035)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:1004)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:862)
    at com.sun.xml.internal.ws.client.Stub.process(Stub.java:448)
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:178)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:77)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147)

【问题讨论】:

    标签: java web-services soap https


    【解决方案1】:

    Connection timed out 表示底层 TCP 连接尚未建立,因为第一个数据包没有得到任何响应。

    因此,某些防火墙阻止了您的连接(这是防火墙,因为路由器应该已向您发送回 ICMP 错误消息,因此您不会得到超时,而是“无法访问目标”)。

    最常见的情况是您没有直接的 Internet 连接并且您的 Web 服务在 Internet 上,因此您需要通过代理。在您的代码中,您需要让您的 Web 服务库使用此代理,并可选择添加一些凭据以使用此代理。

    【讨论】:

    • 嗨,Alexandre,感谢您的回复,我感觉这是由于 SSL 证书身份验证,但我仍然可能与实际答案相去甚远。是否有代码可以帮助我绕过检查以及如何将其放入我的客户端以使证书受到信任。我确实通过了一些像这样的例子(stackoverflow.com/questions/875467/…)但不知道如何从 java 客户端插入或调用这种代码
    • 不,错误的证书不会产生超时错误。你的问题是网络问题。你可能是证书有问题,但你以后会遇到,你首先要解决你的网络问题。
    • 我可以毫无问题地从 SOAP UI 调用 Web 服务,但是当涉及到 java 客户端时,我遇到了这个问题。如果是网络问题,那么 SOAP UI 也将无法工作,对吗?
    • 您错了:在 Windows 上,SoapUI 代理设置默认情况下会使用您的浏览器设置自动定义。你在 Windows 上工作吗?
    • 这就是它与 Soap UI 一起工作的原因。您的 java 代码中肯定缺少代理配置。
    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    相关资源
    最近更新 更多