【问题标题】:How to get Javalin's Jetty http server to bind/listen on a specific address/port?如何让 Javalin 的 Jetty http 服务器绑定/监听特定地址/端口?
【发布时间】:2019-02-04 04:40:58
【问题描述】:

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

【问题讨论】:

  • 在相关说明中...github sample code here 帮助我解决了与 Javalin 的 Jetty 配置相关的类似问题,包括如何配置 HTTP2 和 TLS 1.3。

标签: java kotlin jetty embedded-jetty javalin


【解决方案1】:

发现可以自己创建 Jetty Server 实例并进行配置。在 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()

【讨论】:

    【解决方案2】:

    下面是如何在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多