Tomcat 7拒绝连接

时间:2013-05-18 23:38:57

标签: java tomcat tomcat7 jelastic

我在Jelastic上运行了一个Tomcat实例,并且有两个已部署的应用程序 - 用于'/ foo'上下文和'/ bar'上下文。

在处理对'/ foo'的请求期间,我们对'/ bar'进行HTTP请求(用于授权),这里总是有异常 - ConnectException:ConnectionRefused。

如果我通过浏览器或在本地PC上运行的代码连接到'/ bar',一切都很完美。此外,如果我从服务器(在处理请求到'/ foo'期间)连接到位于不同位置的主机,一切都按预期工作。看起来Tomcat以某种方式过滤来自同一主机的传入连接。有人知道该怎么做吗?

2 个答案:

答案 0 :(得分:3)

“拒绝连接”消息表示某些内容无法在传输级别打开网络连接。这很可能意味着您尝试与之通信的服务未在侦听连接尝试中使用的特定IP和端口号上的新连接。

检查:

  1. 被拒绝的请求使用的是正确的IP和端口号。
  2. 您的tomcat服务已正确配置为侦听该IP和端口。
  3. 请记住,您的系统可能有多个IP地址,您需要收听您希望使用的每个IP地址。另请注意,“本地主机”通常是不同的IP地址。

    然后如果以上都不是问题:

    1. 如果网络级别或本地防火墙可能会阻止流量,请检查。
    2. 如果由于复杂的虚拟网络导致“陌生”的可能性,请检查。
    3.   

      看起来Tomcat以某种方式过滤来自同一主机的传入连接。

      Tomcat不会像那样“过滤”。但是很有可能你没有配置tomcat来监听请求。检查“server.xml”文件以查看是否已正确配置。


      FWIW - 我不认为这是Tomcat7 CSRF过滤器。根据文档,这将返回HTTP响应。事实上,我无法看到接收Tomcat中的任何内容如何通过除了不首先监听连接之外的任何方式产生“连接被拒绝”状态。

答案 1 :(得分:1)

连接拒绝绝对意味着网络问题。其中一个潜在的原因是您的应用程序尝试使用http标头“host”值等建立连接,并且通常标题“host”值不包含8080端口字符串-BUT- tomcat在Jelastic正在端口8080上运行,所以您可以尝试连接到第二个应用程序强制指定端口8080或联系您的支持人员并要求他们设置iptables规则,将所有请求(在您的tomcat容器内)重定向到80到8080端口。