Прикрепите замену clojure/scala к запущенной JVM
У меня есть java-приложение, работающее под tomcat в JVM Sun java 6. Есть ли способ подключить scala или clojure REPL к запущенной JVM?
После запуска и запуска webapp контекст, в котором должны выполняться вызовы, уже настроен в текущей виртуальной машине. Следовательно, это может быть действительно полезно при вызове произвольных вызовов метода java для инкрементной, поисковой разработки и для отладки.
Ответы
Ответ 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.