首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rest客户端java.net.ConnectException:连接超时:连接

Rest客户端java.net.ConnectException:连接超时:连接
EN

Stack Overflow用户
提问于 2014-03-14 02:25:28
回答 4查看 31.4K关注 0票数 3

您好,我在weblogic服务中部署了一个Spring Rest Webservice。我有先进的谷歌浏览器的rest客户端,这在https上完美的工作,我试图创建通过https客户端客户端。我有ca证书和客户证书。我从下面的链接Accessing secure restful web services using jersey client创建了它,但我在下面遇到了异常

代码语言:javascript
复制
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection timed out: connect
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
        at com.sun.jersey.api.client.Client.handle(Client.java:652)
        at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
        at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
        at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
        at org.app.last.JerseyClient.get_JSON(JerseyClient.java:39)
        at org.app.last.JerseyClient.main(JerseyClient.java:239)
    Caused by: java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564)
        at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
        at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
        ... 6 more
EN

回答 4

Stack Overflow用户

发布于 2014-03-18 05:36:57

看起来你对代理还是有问题的。而且你也可能在证书上有问题

  1. 检查您是否正确配置了代理
  2. 检查您的证书是否已过期。如果已过期,请向fiddler申请一个新的
  3. 检查您是否要将证书发送到服务器
票数 2
EN

Stack Overflow用户

发布于 2014-03-14 02:55:14

检查您的防火墙设置,查看是否阻止了除浏览器以外的出站端口。根据公司的不同,这种情况偶尔会发生。

默认情况下,出站端口是打开的,但这可能已由系统管理员更改-请参阅此answer

此外,连接可能会在您的公司代理级别被阻止。例如,在一些公司,你只能用一个浏览器上网,如果你安装了另一个浏览器并尝试用另一个浏览器访问互联网,你会收到一条消息“它只能用浏览器XX浏览互联网”,或者超时。

这是因为代理检查User-Agent标头。

许多代理需要身份验证,并且只向授权用户提供访问权限。在网上冲浪时,Chrome会自动在一些HTTP头文件中填入你的凭据,但你的程序不会这样做。

要解决此问题,请尝试以下可能性:

  • 使用System.out.println将Url打印到控制台,并确认它与您在Chrome中键入的完全相同。
  • 使用非浏览器的命令行实用程序(如curl或wget )检查您是否可以访问例如谷歌和端点
  • 检查您的防火墙设置
票数 1
EN

Stack Overflow用户

发布于 2021-01-14 07:57:36

这不是证书问题,否则您将看到SSL错误。检查您的代理设置。在Spring应用程序中,您可以向VM参数添加以下内容来设置代理:-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档