vertx.createHttpServer() 抛出 NullPointerException

vertx.createHttpServer() throws NullPointerException

我正在研究 vertx。

为什么这段代码会抛出 NullPointerException?

import io.vertx.core.http.HttpServer;
import io.vertx.core.AbstractVerticle;

class vertxFacadeTest extends AbstractVerticle
{

    @Test
    void createServer()
    {
        HttpServer httpServer = vertx.createHttpServer();
    }
}


java.lang.NullPointerException
at com.webinterface.vertxFacadeTest.createServer(vertxFacadeTest.java:23) //line 23 is this here: HttpServer httpServer = vertx.createHttpServer();

有人知道为什么吗? 期待:-)

您的 Vertx 实例为空。现在你的 class 扩展了 AbstractVerticle,这意味着它有一个 vertx 实例变量,但它没有在它的构造函数中初始化;它仅在 AbstractVerticle.init() 方法中设置为实际值,仅在部署 Verticle 时由 Vert.x 调用。因此,在您的情况下,当 JUnit 实例化 class 时,vertx 为空。

你不应该让测试 class 扩展 AbstractVerticle。相反,在测试 class 中显式创建 Vertx 实例,可能使用带有 @Before 注释的方法。请参阅有关 Vert'x 与 JUnit 集成的文档 here