Подтвердить что ты не робот

Прикрепите замену clojure/scala к запущенной JVM

У меня есть java-приложение, работающее под tomcat в JVM Sun java 6. Есть ли способ подключить scala или clojure REPL к запущенной JVM?

После запуска и запуска webapp контекст, в котором должны выполняться вызовы, уже настроен в текущей виртуальной машине. Следовательно, это может быть действительно полезно при вызове произвольных вызовов метода java для инкрементной, поисковой разработки и для отладки.

4b9b3361

Ответ 1

Скопировано по другому вопросу в соответствии с вашим запросом:

liverepl: подключите Clojure REPL к запущенным процессам Java или Clojure без специальной настройки

С веб-сайта: Запустите Clojure REPL, подключенный к любому запущенному процессу Java или Clojure без необходимости заранее настраивать процесс каким-либо особым образом. Теперь поддерживается подключение к веб-приложениям Tomcat. Вы можете использовать repl для запуска кода, проверки переменных и переопределить Clojure функции.

https://github.com/djpowell/liverepl

Ответ 2

Невозможно присоединить REPL к уже запущенной JVM, поэтому вам нужно подумать о проблеме назад...

Запустите REPL на сервере либо при запуске программы, либо в ответ на входящее клиентское соединение (например, с помощью Telnet).

Вот хороший пример: http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

Вы также можете разместить экземпляр Interpreter на своем сервере, а затем открыть веб-интерфейс. Это подход, используемый http://www.simplyscala.com/


Если вы подумываете об отладке, то вам лучше будет отвечать этот ответ: Отбрасывать интерпретатор во время произвольного местоположения кода scala

Ответ 3

Вы можете использовать это: https://github.com/wirde/swank-inject

Позволяет вам прикрепить Clojure к запущенному java-процессу (с удаленной отладочной поддержкой).

Вы также можете указать несколько классов (одноточие), для которых будут найдены экземпляры и привязаны к символу, доступному в repl.

Ответ 4

Для подключения Scala REPL к другому JVM, посмотрите Scalive.