2014-03-13 109 views
3

嗨,我已经在weblogic服务中部署了一个Spring Rest Webservice。我有先进的谷歌Chrome浏览器的客户端,可以通过https 完美工作我正尝试通过https客户端创建客户端。我有ca证书和客户证书。我创造了它从下面的链接 Accessing secure restful web services using jersey client但我正在逐渐低于其他客户端java.net.ConnectException:连接超时:连接

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 
+0

看起来像你使用的任何端点是无效的或只是没有响应。 – user2793390

+0

我可以在Chrome休息客户端中使用这些终结点。 – ramesh027

+0

很可能你真的有超时。这可能是由于网络问题(网络速度慢,服务器无响应等等)造成的。) 我会从同一个客户端计算机到同一个服务器,而不是从代码(例如浏览器如果是'GET'),或者像'curl'这样的工具(如果是POST)或者'PUT') – Avi

回答

1

例外检查防火墙设置,看看是否被封锁,除了浏览器的出站口。这种情况偶尔会依赖于公司。

出站端口默认打开,但系统管理员可能已更改此出站端口 - 请参阅此answer

此外,连接可能会在公司代理级别被阻止。例如,在一些公司中,您只能使用一个浏览器浏览网页,如果您安装并尝试使用其他浏览器访问互联网,则会收到一条消息“仅允许使用浏览器XX浏览互联网”或超时。

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

许多代理需要认证,只允许授权用户访问。浏览时,Chrome会在某些HTTP标头中自动填入您的凭证,但您的程序不会这样做。

要解决这个问题,尝试以下几种可能:

  • 打印的URL控制台System.out.println并确认它是完全一样的,你在Chrome中键入

  • 使用非浏览器基于浏览器的命令行实用程序,如curl或wget,以检查您是否可以访问例如Google和端点

  • 检查您的防火墙设置

+1

我试图用,即使我得到休耕错误线程\t \t \t \t \t \t异常“主要” com.sun.jersey.api.client代理连接。 ClientHandlerException:java.net.ConnectException:连接超时:在com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)连接 \t \t \t \t \t \t \t \t \t \t在的com.sun .jersey.api.client.Client.handle(Client.java:652) \t \t \t \t \t在com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) \t \t \t \t \t在com.sun.jersey.api.client.WebResource.access $ 200(WebResource的.java:74) \t \t \t \t在 – ramesh027

+1

我的工作是忽略SSL的它的工作,但它并没有使用SSL – ramesh027

+0

工作,我张贴在另外一个问题的问题https://stackoverflow.com/questions/22452079/jersey-client -with-ignore-ssl-with-proxy-setting – ramesh027

2

看来你仍然有一个代理问题。 ,你也可以有问题,该证书

  1. 检查您是否配置正确代理
  2. 检查您的证书是否已过期。如果过期,申请一个新的
  3. 检查与小提琴手是否要发送证书服务器
+0

我会明天检查它并让你知道...... – ramesh027

相关问题