27

Sun Java 6 JVM の Tomcat で Java Web アプリケーションを実行しています。実行中の JVM に scala または clojure REPL をアタッチする方法はありますか?

Web アプリケーションが起動して実行されると、呼び出しが行われるコンテキストが、実行中の VM で既にセットアップされています。したがって、これは、インクリメンタルな探索的開発やデバッグのために、任意の Java メソッド呼び出しを呼び出すのに非常に役立ちます。

4

4 に答える 4

22

あなたの要求に従って、他の質問からの回答をコピーしました:

liverepl: 特別なセットアップなしで、Clojure REPL を実行中の Java または Clojure プロセスに接続します。

Web サイトから: 実行中の Java または Clojure プロセスに接続された Clojure REPL を開始します。事前に特別な方法でプロセスをセットアップする必要はありません。Tomcat Web アプリケーションへの接続がサポートされるようになりました。repl を使用してコードを実行し、変数を検査し、Clojure 関数を再定義できます。

https://github.com/djpowell/liverepl

于 2010-11-09T11:23:58.713 に答える
7

すでに実行中のJVMにREPLをアタッチする方法はないため、問題を逆方向に考える必要があります...

プログラムの起動時、またはインバウンドクライアント接続(Telnetなどを使用)に応答して、サーバーでREPLを開始します。

ここに良い例があります:http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

サーバーでインタープリターインスタンスをホストしてから、Webインターフェイスを公開することもできます。これはhttp://www.simplyscala.com/によって採用されたアプローチです


デバッグを考えている場合は、次の回答の方が適しています。任意のscalaコードの場所でインタープリターにドロップする

于 2010-11-09T08:27:02.213 に答える
6

これを使用できます: https://github.com/wirde/swank-inject

Clojure repl を実行中の Java プロセスにアタッチできます (リモート デバッグが有効になっています)。

インスタンスが検出され、repl で使用可能なシンボルにバインドされるクラス (シングルトン) の数を指定することもできます。

于 2011-04-15T21:25:42.077 に答える
1

他の JVM に接続する Scala REPL については、Scaliveを参照してください。

于 2014-03-20T08:22:18.523 に答える