2014-03-13 2 views
3

안녕하세요, 저는 Spring Rest Webservice를 weblogic 서비스에 배포했습니다. 나는 완벽하게 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

나는 크롬 레스트 클라이언트에서 이러한 엔드 포인트를 미리 사용할 수 있습니다. – ramesh027

+0

아마도 대부분 타임 아웃이 있습니다. 네트워크 문제 (느린 네트워크, 응답없는 서버 등)로 인해 발생할 수 있습니다.) 동일한 클라이언트 컴퓨터에서이 호출을 코드에서가 아니라 (예 : 브라우저가 'GET'인 경우) 또는 curl ('POST'또는 ' 'PUT') – Avi

답변

1

아래 예외를 얻고있다. 이는 회사에 따라 때때로 발생합니다.

기본적으로 아웃 바운드 포트가 열렸지 만 시스템 관리자가 변경할 수 있습니다 (answer 참조).

또한 회사 프록시 수준에서 연결이 차단되었을 수 있습니다. 예를 들어 어떤 회사에서는 하나의 브라우저에서만 서핑을 할 수 있으며, 다른 브라우저로 인터넷에 연결하여 설치하려고하면 "브라우저 XX로 인터넷을 브라우저에만 허용되었습니다"라는 메시지 또는 제한 시간이 표시됩니다.

프록시가 User-Agent 헤더를 확인하기 때문에 작동합니다.

많은 프록시는 인증이 필요하며 인증 된 사용자에게만 액세스 권한을 부여합니다. Chrome은 서핑하는 동안 일부 HTTP 헤더에서 자격 증명을 자동으로 채 웁니다. 그러나 프로그램이 그렇게하지 않습니다.

이 문제를 해결하려면, 다음과 같은 가능성을 시도 : System.out.println와 콘솔에

  • 인쇄 URL을하고 당신이 크롬에 입력 동일하다는 확인

  • 이외의 브라우저를 사용 curl이나 wget 같은 기반 명령 줄 유틸리티를 사용하여 액세스 할 수 있는지 확인하십시오. 예를 들어 google 및 endpoint도

  • 방화벽 설정을 확인하십시오.

+1

전화와 함께 실패합니다. ClientHandlerException : java.net.ConnectException : 연결 시간이 초과되었습니다 :이 com.sun에서 \t \t \t \t \t com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle (URLConnectionClientHandler.java:155)에서 \t \t \t \t \t 연결 .jersey.api.client.Client.handle (Client.java:652)com.sun.jersey.api.client.WebResource.handle에서 \t \t \t \t (WebResource.java:682) com.sun.jersey.api.client.WebResource.access $ 200 \t \t \t \t \t (WebResource 된 .java : 74) \t \t \t \t가 – ramesh027

+1

에서 나는 내가 또 다른 문제의 질문을 게시가 근무 SSL 무시하지만 SSL – ramesh027

+0

작업 didnt가에 근무 https://stackoverflow.com/questions/22452079/jersey-client -with-ignore-ssl-with-proxy-setting – ramesh027

2

아직 프록시에 문제가있는 것 같습니다. 또한 당신은 인증서와 프록시에게 인증서가 만료 여부를 제대로

  • 확인을 구성하고 있는지

    1. 확인 문제가있을 수 있습니다. 만료 된 경우 후반 응답을
  • +0

    내일 확인하고 알려 드리겠습니다 ... – ramesh027

    관련 문제