¿Cómo podemos usar la recarga automática?

Intentando utilizar la function de recarga automática del module (como se describe aquí ), pero desafortunadamente la documentation no es demasiado útil.

Dice usar la configuration, pero la página de configuration está vacía.

Creo que puede pasar la list de "observación" de modules a la llamada embeddedServer() desde esta página , pero cuando lo hago, obtengo la siguiente exception: La Module function provided as lambda cannot be unlinked for reload .

Por lo tanto, no le permitirá pasar un lambda como module de aplicación, pero no estoy seguro de cómo evitar hacerlo mientras obtengo acceso a los methods de Application (por ejemplo, routing() ).

¿Alguien ha podido volver a cargar automáticamente últimamente? ¿Si es así, cómo?

Es posible que Lambda tenga un estado capturado de la function que lo contiene y, por lo tanto, no se pueda volver a cargar; no hay forma de restablecer el estado capturado. Tienes que extraer la aplicación en una function separada como esta:

 fun Application.module() { install(CallLogging) install(Routing) { get("/") { call.respondText("""Hello, world!<br><a href="/bye">Say bye?</a>""", ContentType.Text.Html) } … } } 

Y luego comienza con la reference de function:

 embeddedServer(Jetty, watchPaths = listOf("embedded"), module = Application::module).start() 
  • Recepción de parameters de formulario en el server de Ktor