如何运行嵌入式vert.x?

时间:2012-12-18 15:19:33

标签: java main vert.x

我用main(args)编写了一个Groovy MainApp。

当我启动它时,JVM直接退出(“JVM执行结束!”)。

import org.vertx.groovy.core.Vertx

class MainApp {

    public static void main(String[] args) {

        Vertx vertx = VertxFactory.newVertx();

        vertx.createHttpServer().requestHandler{ request -> 
            println "A request has arrived on the server!" 
        }.listen(8080)

        println "End of JVM execution !"
    }
}

如何正确运行带有vert.x的嵌入式 HTTP服务器?

5 个答案:

答案 0 :(得分:2)

我遇到了与Java相同的问题。我最终在所有vert.x代码之后将对象放在.wait()中。 看起来很糟糕,但实际上是有道理的,因为它让我触发按需关闭服务器(通过.notify())。

这是非常重要的,应该在Vert.x官方文档中提及。

答案 1 :(得分:0)

我遇到了这个。我尝试传递主机名然后它工作正常。

Vertx vertx = Vertx.newVertx(“hostname”

我想在本地运行时确定IP地址存在一些问题,但是它失败了。

答案 2 :(得分:0)

RouteMatcher routeMatcher = new RouteMatcher();

        // HTTP server
        HttpServer httpServer = vertx.createHttpServer();
        httpServer.requestHandler(routeMatcher);
httpServer.listen(7777);

答案 3 :(得分:0)

取自文档:http://vertx.io/embedding_manual.html

等待来自System.in的输入:

// Prevent the JVM from exiting
System.in.read();

答案 4 :(得分:0)

来自文件:

all Vert.x threads are daemon threads and they will not prevent the JVM for exiting. Therefore you must ensure that the main() method does not run to completion, e.g. in this example we have used System.in.read() to block the main thread waiting for IO from the console.

因此,您需要在main方法的末尾添加以下内容,如下所示:

// Prevent the JVM from exiting
System.in.read();