Sun Java 6 JVM の Tomcat で Java Web アプリケーションを実行しています。実行中の JVM に scala または clojure REPL をアタッチする方法はありますか?
Web アプリケーションが起動して実行されると、呼び出しが行われるコンテキストが、実行中の VM で既にセットアップされています。したがって、これは、インクリメンタルな探索的開発やデバッグのために、任意の Java メソッド呼び出しを呼び出すのに非常に役立ちます。
Sun Java 6 JVM の Tomcat で Java Web アプリケーションを実行しています。実行中の JVM に scala または clojure REPL をアタッチする方法はありますか?
Web アプリケーションが起動して実行されると、呼び出しが行われるコンテキストが、実行中の VM で既にセットアップされています。したがって、これは、インクリメンタルな探索的開発やデバッグのために、任意の Java メソッド呼び出しを呼び出すのに非常に役立ちます。
あなたの要求に従って、他の質問からの回答をコピーしました:
liverepl: 特別なセットアップなしで、Clojure REPL を実行中の Java または Clojure プロセスに接続します。
Web サイトから: 実行中の Java または Clojure プロセスに接続された Clojure REPL を開始します。事前に特別な方法でプロセスをセットアップする必要はありません。Tomcat Web アプリケーションへの接続がサポートされるようになりました。repl を使用してコードを実行し、変数を検査し、Clojure 関数を再定義できます。
すでに実行中のJVMにREPLをアタッチする方法はないため、問題を逆方向に考える必要があります...
プログラムの起動時、またはインバウンドクライアント接続(Telnetなどを使用)に応答して、サーバーでREPLを開始します。
ここに良い例があります:http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html
サーバーでインタープリターインスタンスをホストしてから、Webインターフェイスを公開することもできます。これはhttp://www.simplyscala.com/によって採用されたアプローチです
デバッグを考えている場合は、次の回答の方が適しています。任意のscalaコードの場所でインタープリターにドロップする
これを使用できます: https://github.com/wirde/swank-inject
Clojure repl を実行中の Java プロセスにアタッチできます (リモート デバッグが有効になっています)。
インスタンスが検出され、repl で使用可能なシンボルにバインドされるクラス (シングルトン) の数を指定することもできます。
他の JVM に接続する Scala REPL については、Scaliveを参照してください。