2017-09-14 28 views
3

hereのように)自動モジュールリロード機能を使用しようとしましたが、ドキュメントは残念なことにあまり役に立ちません。自動再読み込みはどのように使用できますか?

設定を使用していますが、設定pageは空です。

私はモジュールの "時計"リストをthis pageからembeddedServer()コールに渡すことができると信じていますが、私はそうすると次の例外を受け取ります:Module function provided as lambda cannot be unlinked for reload

したがって、アプリケーションモジュールとしてラムダを渡すことはできませんが、次にApplicationメソッド(例:routing())にアクセスする際の回避方法がわかりません。

最近、誰かが自動的に再読み込みを行うことができましたか? そうなら、どうですか?

答えて

4

Lambdaは機能を含むことからキャプチャされた状態を持っている可能性があり、したがって再ロードできません。キャプチャされた状態を復元する方法はありません。

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() 
関連する問題