Connection refused with Tomcat 7

Nik Matveev picture Nik Matveev · May 19, 2013 · Viewed 55.1k times · Source

I have a Tomcat instance running on Jelastic and there are two deployed apps - for '/foo' context and for '/bar' context.

During handling request to '/foo' we do a HTTP request to '/bar' (for authorization) and there is always an exception here - ConnectException: ConnectionRefused.

If I connect to '/bar' through browser or from code running on my local PC everything works perfectly. Also if I connect from server (during handling a request to '/foo') to a host located in the different place everything is also work as expected. It looks like that the Tomcat somehow filter incoming connections from the same host. Does anybody know what to do with that?

Answer

Stephen C picture Stephen C · May 19, 2013

A "connection refused" message means that something was unable to open a network connection at the transport level. This most likely means that the service you are trying to talk to is not listening for new connections on the specific IP and port number that were used in the connection attempt.

Check:

  1. That the request that is being refused is using the correct IP and port number.
  2. That your tomcat service is properly configured to listen on that IP and port.

Bear in mind that your system may have multiple IP addresses, and you need to listen on each one that you wish to use. Also bear in mind that "local host" is typically a different IP address.

Then if neither of the above is the problem:

  1. If there is a possibility of network level or local firewalling blocking the traffic, check that.
  2. If the possibility of "strangeness" due to complicated virtual networking, check that.

It looks like that the Tomcat somehow filter incoming connections from the same host.

Tomcat doesn't "filter" like that. But it is quite possible that you haven't configured tomcat to listen for the requests. Check the "server.xml" file to see if you have configured that correctly.


FWIW - I don't think this is the Tomcat7 CSRF filter. According to the documentation, that would return a HTTP response. In fact, I can't see how anything inside the receiving Tomcat could generate a "connection refused" state by any means other than not listening for connections in the first place.