#java #gradle #kotlin #netty #ktor
#java #gradle #kotlin #netty #ktor
Вопрос:
Я использую Ktor в своем классе Koltin / Java после того, как мне потребовался фреймворк Netty.
Мой текущий класс WebServer.kt выглядит следующим образом:
fun init(serviceProperties: ServerProperties) {
val route = Routing(serviceProperties)
val env = applicationEngineEnvironment {
module {
main()
}
connector {
host = route.getInternalAddress()
port = route.getPort()
}
connector {
host = route.getExternalAddress()
port = route.getPort()
}
}
embeddedServer(Netty, env)
.start(wait = true)
}
Мой метод обработки всех запросов выглядит следующим образом:
private fun Application.main() {
install(CORS)
routing {
get("/") {
call.respondText ("Test", ContentType.Text.Plain)
}
}
}
Дополнительная информация:
route.getInternalAddress() // 192.168.0.18 <-- (IPV4 IP) trying to test
route.getExternalAddress() // 0.0.0.0 <-- not yet needed
route.getPort() // 8080
Мой вывод выглядит следующим образом:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by io.netty.util.internal.PlatformDependent0 (file:/C:/Users/Kye/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.0.34.Final/e1e53fb0283cc6fbc0f3631e60f658ddebcf005/netty-all-4.0.34.Final.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of io.netty.util.internal.PlatformDependent0
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[19:18:46.084 INFO ] Application | No ktor.deployment.watch patterns specified, automatic reload is not active
[19:18:46.256 INFO ] Application | Responding at http://192.168.0.18:8080
[19:18:46.256 INFO ] Application | Responding at http://0.0.0.0:8080
Когда я перехожу к http://192.168.0.18:8080/
, я получаю
192.168.0.18 не отправил никаких данных
ОШИБКА_EMPTY_RESPONSE
Что я делаю не так?
Комментарии:
1. вы проверили код ответа?
2. Как я могу проверить код ответа? @jonathanHeindl
3. вы можете ввести sth следующим образом в консоли ‘curl -i 192.168.0.18:8080 ‘
4.
curl: (52) Empty reply from server
@jonathanHeindl5. указано ли на каком сервере? но, тем не менее, это, похоже, больше относится к теме devops, чем к серверному кодированию: вы находитесь на той же машине, что и сервер? если нет, попробуйте выполнить ping 192.168.0.18 и посмотреть, получите ли вы ответ (прервите с помощью ctrl c)