2013-09-25 38 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) 

随后,表明wgetcurl和改变端口(993)上telnet做工精细,所以它必须是一个HttpClient问题(应用程序中使用)。

有人可以告诉可能是这种行为的原因......?

+0

但你舒尔是'your'服务器上的993,而不是邮件服务器运行?也许你的服务器简单不开始(并沉默地去世)。 – PeterMmm

+0

我不确定你问的究竟是什么,但是 - Tomcat肯定是在端口993上,因为这个端口在此之前没有被使用。正如我所说的,我使用'curl','wget'和'telnet'对本地和远程进行了测试。 – Less

回答

3

我试着在端口993上运行一个裸露的Apache Tomcat实例,然后在994上运行。

我发现的是谷歌浏览器能够访问994但不993由于其受限的端口为IMAPS。 (有趣的事实,我不知道:所有的浏览器阻止这些非标准的HTTP端口,因为它们构成安全风险。例如,如果您向下滚动到94行,您可以在谷歌浏览器的所有受限制端口中使用view here a list。)

使用WizTools RESTClient 3.2.1为Mac适用于我,但这是本地。根据您的网络,可能会出现网络/防火墙方面的问题,这很奇怪,因为curl等工作正常,所以我不认为它是HttpClient的实际问题,因为它应该像curl那样行事。也许这是3.2而不是3.2.1

参见:

enter image description here

+0

你是对的 - 浏览器会阻止这些非标准的端口。我会检查客户端的较新版本,看看会发生什么。 – Less

+0

不,同样的事情发生在版本3.2.1。我忘记提到的是,我从桥接客户Ubuntu VM(我的主机操作系统是Windows7)运行'curl','wget'和'telnet'命令。所以,我试着从Ubuntu运行'RESTClient',猜猜看 - 它工作正常:)这是操作系统级别的东西,可能是防火墙,但我无法确定问题。我必须给你至少+1的努力和从不同操作系统运行RC的想法;) – Less

+0

Ubuntu防火墙可能会阻止该端口。你说在Windows上使用telnet到Ubuntu的盒子工作正常吗? – Welsh

相关问题