2013-09-25 3 views
1

У меня была установка экземпляра Tomcat для прослушивания на порту 80xx. В нем размещается служба 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 и telnet отлично работает на измененном порт (993), поэтому он должен быть HttpClient вопрос (используется в приложении).

Может кто-нибудь сказать, что может быть причиной такого поведения ...?

+0

Но вы уверенны, что 'your' сервер работает на 993, а не почтовый сервер? Возможно, ваш сервер просто не запускается (и умирает тихо). – PeterMmm

+0

Я не уверен, что вы спрашиваете, но да. Tomcat определенно находится на порте 993, так как этот порт не использовался до этого. Как я уже сказал, я тестировал его как локально, так и удаленно, используя 'curl',' wget' и 'telnet'. – Less

ответ

3

Я попробовал запустить голой экземпляр Tomcat Apache на порту 993, а затем на 994.

Я обнаружил, что Google Chrome смог получить доступ к 994, но не 993, потому что его ограниченный порт для IMAPS. (Интересно, что я не знал: все браузеры блокируют эти нестандартные HTTP-порты, потому что они представляют угрозу безопасности. Например, вы можете view here a list всех ограниченных портов для Google Chrome, если прокрутите вниз до строки 94.)

Использование WizTools RESTClient 3.2.1 для Mac работает для меня, но это локально. В зависимости от вашей сети может произойти что-то, что происходит в сети/брандмауэре, что было бы странно, потому что curl и т. Д. Работают. Поэтому я не думаю, что это актуальная проблема с HttpClient, потому что она должна действовать как curl и т. Д. Может быть, это с 3.2, а не 3.2.1.

См:

enter image description here

+0

Вы правы - браузеры блокируют эти нестандартные порты. Я проверю более новую версию клиента и посмотрю, что произойдет. – Less

+0

Нет, то же самое происходит с версией 3.2.1. Я забыл упомянуть, что я запускал команды 'curl',' wget' и 'telnet' из моста Ubuntu VM (моя операционная система - Windows7). Итак, я попробовал запустить «RESTClient» у Ubuntu, и угадайте, что - он отлично работает :) это что-то на уровне ОС, возможно, межсетевой экран, но я не мог точно определить проблему. Я должен дать вам хотя бы +1 за усилия и идею запуска RC из разных ОС;) – Less

+0

Ubuntu Firewall может блокировать этот порт. И вы сказали, что использование telnet в Windows для работы в Ubuntu правильно? – Welsh

Смежные вопросы