【问题标题】:Connection Refused, how to solve?连接被拒绝,如何解决?
【发布时间】:2019-02-20 17:35:27
【问题描述】:

我一直在使用 java 教程开发服务,并通过 localhost:8082 收听它。它工作得很好,但是由于我关闭了计算机,当我尝试收听它时它返回错误连接被拒绝,并且唯一呈现不同响应的端口是 8080 和 8081,当我尝试时得到相同的错误通过他们收听服务。 这是代码

package io.vertx.book.message;

import io.vertx.core.json.JsonObject;
import io.vertx.rxjava.core.AbstractVerticle;
import io.vertx.rxjava.core.eventbus.Message;
import rx.Single;

public class HelloConsumerMicroservice extends AbstractVerticle {

    @Override
    public void start() {
        vertx.createHttpServer()
            .requestHandler(
                req -> {
                    Single<JsonObject> obs1 = vertx.eventBus()
                        .<JsonObject>rxSend("hello", "Luke")
                        .map(Message::body);
                    Single<JsonObject> obs2 = vertx.eventBus()
                        .<JsonObject>rxSend("hello", "Leia")
                        .map(Message::body);

                    Single
                        .zip(obs1, obs2, (luke, leia) ->
                            new JsonObject()
                                .put("Luke", luke.getString("message")
                                    + " from " + luke.getString("served-by"))
                                .put("Leia", leia.getString("message")
                                    + " from " + leia.getString("served-by"))
                        )
                        .subscribe(
                            x -> req.response().end(x.encodePrettily()),
                            t -> req.response().setStatusCode(500).end(t.getMessage())
                        );
                })
            .listen(8082);
    }

}

这就是我得到的回应:

我不知道它为什么停止工作,但我已经浏览了很多答案并且已经尝试清理我的缓存,但没有任何改进。有人可以帮忙吗?

我使用的是 Linux 18.04、chrome/firefox(都被拒绝连接)。

【问题讨论】:

  • 查看运行进程的netstat。如果端口已打开,请使用(例如)telnet/curl 来检查 strace 输出以获取错误描述。如果这不能帮助检查在服务器端返回什么错误 accept syscall(如果有的话)。

标签: java linux localhost


【解决方案1】:

当您使用 Ubuntu 时,可能是您的防火墙不允许连接到该端口。

打开终端并输入

sudo ufw allow 8082

希望对你有帮助

【讨论】:

  • 刚试了一下,返回的规则更新了,但还是一样的错误信息
  • 检查一下是否有东西已经在使用/阻塞端口 8082 可能是值得的。或者你可以让它在不同的端口上监听?
  • 这就是 Damian,它拒绝几乎所有端口的访问,唯一呈现不同结果的端口是 8080 和 8081,它们仍然无法连接,但返回不同的错误。
  • 您尝试使用的其他端口是否允许通过防火墙?端口 8080 和 8082 是相当常见的端口,可能被其他东西使用?
【解决方案2】:

不知何故,在关闭一切并重新启动机器后,一切都恢复了正常,所以......不知道发生了什么,但现在一切都好......它可能被其他东西使用了。无论如何感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2022-01-02
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多