Apa yang saya inginkan:
Saya punya program clojure di situs jarak jauh, sebut saja mccarthy
. Yang ingin saya lakukan adalah menghubungkan ke nrepl-ritz
dari laptop saya, lebih disukai menggunakan nrepl-ritz-jack-in
. Jack in berfungsi dengan baik untuk program lokal, tetapi sepertinya tidak terhubung ke program jarak jauh.
Percobaan 1
C-x C-f di /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Hasil
Emacs tampaknya hang. Jika saya pergi ke *nrepl-server*
buffer, saya melihat ini:
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)
(dan berton-ton saluran lain, juga ...)
Saya menggunakan drip
di laptop saya, tetapi tidak aktif mccarthy
, jadi jelas nrepl-ritz-jack-in
tidak mendeteksi bahwa itu adalah file jarak jauh. Namun, lama reguler nrepl-jack-in
akan berfungsi seperti yang diharapkan dalam kasus ini.
Percobaan 2
Saya juga mencoba memulai nrepl-ritz
penggunaan lein
di mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Dari laptop saya meneruskan port sehingga lokal 42874
menghubungkan ke 42874
atas mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
Kemudian, dari Emacs lokal saya:
(require 'nrepl-ritz)
M-x nrepl
Tuan rumah: 127.0.0.1
Pelabuhan: 42874
Ini memberi saya koneksi:
; nREPL 0.1.7-preview
user>
Jadi untuk mengujinya, saya lari
M-x nrepl-ritz-threads
Ini memberi saya tabel utas yang bagus.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Hasil
Ini hang, tapi terkadang menunjukkan buffer debugging tersembunyi dengan beberapa restart tersedia. Jika saya memintanya untuk mengembalikan pengecualian ke program, itu tidak pernah memberikan kontrol kembali ke REPL.
Saya telah melakukan banyak pencarian tetapi belum bisa mendapatkan sesuatu yang lebih spesifik daripada "pastikan lein ada di jalur Anda" (Dan saya melakukan itu, pada kedua mesin ...).
(/ 1 0)
- ini hang? Mungkin mencoba untuk mengevaluasi infinity ... ;-)Attempt 2
di mesin lokal Anda, tidak berfungsi ok? Itu mulailein ritz-repl
dan kemudian terhubung dari emacsJawaban:
From Here ` Clojure - masalah koneksi menjalankan kembali cider-jack-in
Lihat juga ini
https://devcenter.heroku.com/articles/debugging-clojure
sumber