Was ich möchte:
Ich habe ein Clojure-Programm auf einer entfernten Site, nennen wir es mccarthy
. Ich möchte nrepl-ritz
von meinem Laptop aus eine Verbindung zu einem herstellen , vorzugsweise über nrepl-ritz-jack-in
. Der Jack-In funktioniert gut für ein lokales Programm, scheint jedoch keine Verbindung zu einem Remote-Programm herzustellen.
Versuch 1
C-x C-f auf /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Ergebnis
Emacs scheint zu hängen. Wenn ich zum *nrepl-server*
Puffer gehe , sehe ich Folgendes:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.flatland.drip.Main.invoke(Main.java:117)
at org.flatland.drip.Main.start(Main.java:88)
at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)
(und jede Menge andere Zeilen auch ...)
Ich verwende drip
auf meinem Laptop, aber nicht auf mccarthy
, so nrepl-ritz-jack-in
dass ich nicht erkenne, dass es sich um eine entfernte Datei handelt. Normales Alt nrepl-jack-in
funktioniert in diesem Fall jedoch wie erwartet.
Versuch 2
Ich habe auch versucht, eine nrepl-ritz
Verwendung lein
zu starten mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Von meinem Laptop leite ich einen Port so lokalen 42874
Connects zu 42874
auf mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
Dann von meinen lokalen Emacs:
(require 'nrepl-ritz)
M-x nrepl
Wirt: 127.0.0.1
Hafen: 42874
Dies gibt mir eine Verbindung:
; nREPL 0.1.7-preview
user>
Um es auszuprobieren, renne ich
M-x nrepl-ritz-threads
Es gibt mir eine schöne Tabelle mit Themen.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Ergebnis
Dies hängt, zeigt aber manchmal einen versteckten Debugging-Puffer mit einigen verfügbaren Neustarts. Wenn ich ihm sage, dass er die Ausnahme an das Programm zurückgeben soll, gibt er der REPL niemals die Kontrolle zurück.
Ich habe viele Suchanfragen durchgeführt, konnte aber nichts Spezifischeres als "Stellen Sie sicher, dass Lein auf Ihrem Weg ist" finden (und das habe ich auf beiden Computern getan ...).
(/ 1 0)
- das hängt? Wahrscheinlich versuchen, Unendlichkeit zu bewerten ... ;-)Attempt 2
in Ihrem lokalen Computer, funktioniert es in Ordnung? Das beginntlein ritz-repl
und verbindet sich dann von EmacsAntworten:
Von hier ` Clojure - Verbindungsproblem beim erneuten Ausführen von Cider-Jack-In
Siehe auch dies
https://devcenter.heroku.com/articles/debugging-clojure
quelle