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。
我正在研究 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。