2017-09-14 31 views
3

자동 모듈 재로드 기능 (here)을 사용하려고 시도했지만 설명서는 불행히도 도움이되지 않습니다.어떻게 자동 재 로딩을 사용할 수 있습니까?

구성을 사용한다고 나와 있지만 구성은 page입니다.

나는 this page에서 embeddedServer() 전화로 모듈의 "시계"목록을 전달할 수 있다고 생각하지만, 내가 할 경우 다음 예외가 발생합니다. Module function provided as lambda cannot be unlinked for reload.

그래서 응용 프로그램 모듈로 람다를 전달할 수는 없지만 routing()과 같은 방법 (예 : routing())에 액세스하는 동안이를 방지하는 방법을 모르겠습니다.

요즘 누가 자동으로 다시로드 할 수 있습니까? 그렇다면 어떻게?

답변

4

람다는 기능이 포함 된 상태에서 캡처 된 상태가되어 다시로드 할 수 없으므로 캡처 된 상태를 복원 할 방법이 없습니다.

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

그리고 함수 참조를 시작 :

embeddedServer(Jetty, watchPaths = listOf("embedded"), module = Application::module).start() 
이 같은 별도의 함수로 응용 프로그램을 추출해야