我有一个在 Jelastic 上运行的 Tomcat 实例,并且有两个已部署的应用程序 - 用于“/foo”上下文和“/bar”上下文。
在处理对“/foo”的请求期间,我们向“/bar”发出 HTTP 请求(用于授权),这里始终存在异常 - ConnectException: ConnectionRefused。
如果我通过浏览器或从本地 PC 上运行的代码连接到“/bar”,一切正常。此外,如果我从服务器(在处理对“/foo”的请求期间)连接到位于不同位置的主机,一切也都按预期工作。看起来 Tomcat 以某种方式过滤了来自同一主机的传入连接。有人知道该怎么办吗?
最佳答案
“连接被拒绝”消息意味着无法在传输层打开网络连接。这很可能意味着您尝试与之交谈的服务未在连接尝试中使用的特定 IP 和端口号上监听新连接。
检查:
- 被拒绝的请求使用了正确的 IP 和端口号。
- 您的 tomcat 服务已正确配置为监听该 IP 和端口。
请记住,您的系统可能有多个 IP 地址,您需要监听您希望使用的每个地址。另请记住,“本地主机”通常是不同的 IP 地址。
那么如果以上都不是问题的话:
- 如果网络级别或本地防火墙可能阻止流量,请检查。
- 如果由于复杂的虚拟网络而导致“奇怪”的可能性,请检查。
It looks like that the Tomcat somehow filter incoming connections from the same host.
Tomcat 不会那样“过滤”。但是很可能您还没有配置 tomcat 来监听请求。检查“server.xml”文件以查看您是否已正确配置。
FWIW - 我认为这不是 Tomcat7 CSRF 过滤器。根据文档,这将返回一个 HTTP 响应。事实上,除了首先不监听连接之外,我看不出接收 Tomcat 内部的任何东西如何通过任何方式生成“连接被拒绝”状态。
关于java - 与 Tomcat 7 的连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630067/