2014-03-13 103 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

相關問題