如何让javalin的jettyhttp服务器绑定/监听特定的地址/端口?

jaql4c8m  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(333)

使用 Javalin.create().port(portNumber) 设置侦听端口,但不清楚如何设置侦听/绑定地址。

eimct9ow

eimct9ow1#

发现您可以自己创建jetty服务器示例并对其进行配置。在Kotlin:

val port = Integer.parseInt(System.getProperty("PORT", "8080"))
    val jettyServer = JettyServerUtil.defaultServer()
    jettyServer.apply {
        connectors = arrayOf(ServerConnector(jettyServer).apply {
            this.host = System.getProperty("HOST", "0.0.0.0")
            this.port = port
        })
    }
    val app = Javalin.create()
            .port(port)
            .server { jettyServer }
            .start()
cbjzeqam

cbjzeqam2#

下面是如何在java中执行相同的操作:

int port = Integer.parseInt(System.getProperty("PORT", "8080"))
org.eclipse.jetty.server.Server server = new org.eclipse.jetty.server.Server();
ServerConnector connector = new ServerConnector(server);
connector.setHost(System.getProperty("HOST", "0.0.0.0"));
connector.setPort(port);
server.setConnectors(new ServerConnector[] { connector });

Javalin app = Javalin.create(config -> {
    config.server(() -> server);
}).start(port);

参考文献:https://github.com/tipsy/javalin/issues/138

相关问题