最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误:
Exception in thread "main" org.apache.http.conn.HttpHostConnectException: Connection to http://10.5.20.96:8011 refused
?? ?at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
?? ?at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
?? ?at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
?? ?at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
?? ?at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
?? ?at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066)
?? ?at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
?? ?at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)
?? ?at com.tudou.findlabel.entrance.ClientWithResponseHandler.main(ClientWithResponseHandler.java:52)
Caused by: java.net.ConnectException: Connection refused: connect
?? ?at java.net.PlainSocketImpl.socketConnect(Native Method)
?? ?at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
?? ?at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
?? ?at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
?? ?at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
?? ?at java.net.Socket.connect(Socket.java:519)
?? ?at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
?? ?at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
?? ?... 8 more
原来是因为linux下没有开启对8011的端口访问权限造成的。通过下面的命令可以开启允许对外访问的网络端口: