Ktor Netty Server发送空响应

时间:2018-10-04 17:39:41

标签: kotlin netty ktor

我正在使用ktor 0.9.5。我正在尝试一个简单的例子。但是当尝试连接到服务器时,我得到了ERR_EMPTY_RESPONSE。这是我的代码。

fun main(args: Array<String>) {
    embeddedServer(Netty, port = 8080, host = "localhost") {
        install(DefaultHeaders)
        install(CallLogging)
        routing {
            get(path = "/") {
                call.respondText("Hello World!!")
            }

        }
    }.start()
}

做一些研究,我发现将项目更改为Maven可以解决问题,但是由于我所在组织的规则,我无法做到。任何其他解决方案...谢谢。

我在println("sometext")之前添加了call.respondText("Hello World!!"),但从未执行过。

1 个答案:

答案 0 :(得分:0)

出现 ERR_EMPTY_RESPONSE 错误,我想您是从Google Chrome浏览器请求服务器。对 ? 您是否要从另一台计算机连接到服务器?如果是这样,它将不起作用,因为您已将服务器设置为仅响应来自本地主机的请求。

// loadit.js 
function addUrlToClasspath(pth) {
  var s = java.lang.ClassLoader.getSystemClassLoader();
  var C = Java.type("java.lang.Class[]");
  var p = new C(1); p[0]  = java.net.URL.class;
  var m = java.net.URLClassLoader.class.getDeclaredMethod("addURL", p);
  var O = Java.type("java.lang.Object[]"); var a = new O(1); var f = new java.io.File(pth); m.setAccessible(true);
  var u = f.toURL(); a[0] = u; m.invoke(s, a);
}

addUrlToClasspath($ARG[0]);
print("DONE")

即使添加println(),它也不会执行。 尝试从EmbeddedServer()参数中删除 host =“ localhost” ,然后重新测试。