www que online java scala clojure jvm read-eval-print-loop

java - online - que es heroku cloud



Adjuntar un clojure/scala repl a una JVM en ejecuciĆ³n (4)

Tengo una aplicación web Java que se ejecuta bajo tomcat en una JVM Sun java 6. ¿Hay alguna manera de adjuntar un REPL de scala o clojure a la JVM en ejecución?

Una vez que la aplicación web está en funcionamiento, el contexto en el que se realizarán las llamadas ya está configurado en la máquina virtual en ejecución. Por lo tanto, esto puede ser realmente útil para invocar llamadas de método java arbitrarias para el desarrollo incremental, exploratorio y para la depuración.


Copiado sobre la respuesta de la otra pregunta según su solicitud:

liverepl: conecte un REPL de Clojure para ejecutar procesos Java o Clojure sin ninguna configuración especial

Desde el sitio web: inicie un Clojure REPL conectado a cualquier proceso Java o Clojure en ejecución sin necesidad de que el proceso se configure de ninguna manera especial de antemano. Ahora es compatible con la conexión a las aplicaciones web de Tomcat. Puede usar la respuesta para ejecutar código, inspeccionar variables y redefinir las funciones de Clojure.

https://github.com/djpowell/liverepl


No hay forma de adjuntar un REPL a una JVM que ya se esté ejecutando, por lo que debe pensar en el problema al revés ...

Inicie el REPL en el servidor, ya sea cuando se inicie el programa o en respuesta a una conexión de cliente entrante (utilizando, por ejemplo, Telnet).

Aquí hay un buen ejemplo: http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

También puede alojar una instancia de Intérprete en su servidor y luego exponer una interfaz web. Este es el enfoque adoptado por http://www.simplyscala.com/

Si está pensando en la depuración, esta respuesta lo atendería mejor : visite el intérprete durante la ubicación de código de Scala arbitrario



Puede usar esto: https://github.com/wirde/swank-inject

Le permite adjuntar una respuesta de Clojure a un proceso java en ejecución (con la depuración remota habilitada).

También puede especificar un número de clases (singletons) para las cuales se encontrarán las instancias y se unirán a un símbolo disponible en la respuesta.