2013-09-25 1 views
1

포트 80xx에서 수신 대기하도록 Tomcat 인스턴스를 설정했습니다. REST 서비스를 호스팅합니다. WizTools RESTClient 3.2를 사용하여 클라이언트 측 테스트를 수행했는데 정상적으로 진행되고있었습니다. 그런 다음 서버 수신 대기 포트를 993으로 전환하라는 요청을 받았는데, 이는 IMAPS에 정기적으로 예약되어 있습니다 (이유는 묻지 않음).HttpClient가 포트 993에 연결하지 않습니까?

설치시 변경된 사항은 커넥터 포트뿐입니다. 이제 위해 RESTClient 다음과 같은 예외와 함께 실패합니다

Connection reset 
java.net.SocketException: Connection reset 
at java.net.SocketInputStream.read(Unknown Source) 
at java.net.SocketInputStream.read(Unknown Source) 
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166) 
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90) 
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281) 
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:92) 
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:62) 
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254) 
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) 
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) 
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191) 
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) 
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) 
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520) 
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) 
at org.wiztools.restclient.HTTPClientRequestExecuter.execute(HTTPClientRequestExecuter.java:387) 
at org.wiztools.restclient.ui.RESTViewImpl$2.run(RESTViewImpl.java:322) 

는 그 후, 그것은 wget, curl 및 변경된 포트 (993)에 telnet 잘 작동, 그래서 그것은 (응용 프로그램에 사용)는 HttpClient 문제가 될해야한다는 것을 보여 주었다.

누군가가이 동작의 원인이 무엇인지 말할 수 있습니까?

+0

하지만 your' 서버가 993이 아닌 메일 서버에서 실행되는 '것을 슈어입니까? 어쩌면 서버가 간단히 시작하지 않고 자동으로 종료됩니다. – PeterMmm

+0

정확히 무엇을 묻고 있는지 확신 할 수는 없지만 예 -이 포트가이 포트를 사용하지 않았기 때문에 Tomcat은 확실히 포트 993에 있습니다. 앞에서 말했듯이'curl','wget' 및'telnet'을 사용하여 로컬 및 원격으로 테스트했습니다. – Less

답변

3

포트 993에서 노출 된 apache tomcat 인스턴스를 실행 한 다음 994을 실행 해 보았습니다.

Google 크롬은 IMAPS의 제한 포트이기 때문에 994에 액세스 할 수 있지만 993은 액세스 할 수 없다는 것을 발견했습니다. (모르는 재미있는 사실 : 보안 위험이 있기 때문에 모든 브라우저가 이러한 비표준 HTTP 포트를 차단합니다. 예를 들어 행까지 아래로 스크롤하면 Google 크롬의 모든 제한 포트 중 view here a list 개까지 허용됩니다.

Mac의 경우 WizTools RESTClient 3.2.1을 사용하면 작동하지만 이것은 로컬입니다. 귀하의 네트워크에 따라 뭔가가있을 수 있습니다 네트워크/방화벽 현명한 것 curl 등등이 작동하고 있기 때문에 이상한 것입니다, 그래서 HttpClient와 그 실제 문제는 curl과 같은 역할을해야한다고 생각하지 않습니다. 어쩌면 3.2이고 3.2.1이 아닐 수도 있습니다.

참조 :

enter image description here

+0

맞습니다. 브라우저가 이러한 비표준 포트를 차단합니다. 최신 버전의 클라이언트를 확인하고 어떤 결과가 발생하는지 확인하겠습니다. – Less

+0

아니, 버전 3.2.1에서도 마찬가지입니다. 내가 언급 한 것을 잊어 버린 점은 브리지 게스트 인 Ubuntu VM (내 호스트 OS는 Windows7)에서'curl','wget' 및'telnet' 명령을 실행했다는 것입니다. 그래서 우분투에서'RESTClient'를 실행 해 보았습니다. 그리고 그것이 잘 작동하는지 추측합니다. 이것은 OS 레벨, 아마도 방화벽에있는 것이지만 문제를 정확하게 지적하지 못했습니다. 다른 OS에서 RC를 실행하려는 노력과 아이디어로 적어도 +1을해야합니다.) – Less

+0

우분투 방화벽이 해당 포트를 차단하고있을 수 있습니다. 그리고 Windows에서 telnet을 사용하여 우분투 상자에 제대로 작동한다고 말했습니까? – Welsh

관련 문제