2010-11-09 18 views
25

पर क्लोजर/स्कैला प्रतिलिपि संलग्न करें मेरे पास जावा जावा 6 जेवीएम में टॉमकैट के तहत चल रहा एक जावा वेब एप्लिकेशन है। क्या चल रहे JVM में स्केल या क्लोजर आरईपीएल संलग्न करने का कोई तरीका है?एक चल रहे JVM

वेबपैप ऊपर और चलने के बाद, जिस संदर्भ में कॉल किए जाने हैं, वह पहले से चल रहे वीएम में सेटअप है। इसलिए, यह बढ़ती, अन्वेषणकारी विकास और डिबगिंग के लिए मनमाने ढंग से जावा विधि कॉल का आह्वान करने में वास्तव में सहायक हो सकता है।

उत्तर

20

आपके अनुरोध के अनुसार के रूप में अन्य सवाल से जवाब की प्रतिलिपि बनाई: इस तरीके से http://www.simplyscala.com/


लिया आप तो आप बेहतर इस जवाब से सेवा होगी, डिबगिंग की सोच रहे हैं है :

liverepl: प्रारंभ एक Clojure आर: किसी विशेष सेटअप

वेबसाइट से बिना जावा या Clojure चल रही प्रक्रियाओं को एक Clojure REPL कनेक्ट करें ईपीएल किसी भी चल रहे जावा या क्लोजर प्रक्रिया से पहले किसी भी विशेष तरीके से स्थापित करने की प्रक्रिया के बिना जुड़ा हुआ है। अब टॉमकैट वेब अनुप्रयोगों से कनेक्ट करने का समर्थन करता है। आप कोड चलाने के लिए प्रतिलिपि का उपयोग कर सकते हैं, चर का निरीक्षण कर सकते हैं, और क्लोजर फ़ंक्शंस को फिर से परिभाषित कर सकते हैं।

https://github.com/djpowell/liverepl

7

वहाँ पहले से चल JVM करने के लिए एक आरईपीएल संलग्न करने के लिए कोई रास्ता नहीं है, तो आप समस्या को पीछे की ओर के बारे में सोचने की जरूरत है ...

प्रारंभ आरईपीएल सर्वर पर, या तो जब कार्यक्रम के जवाब में शुरू किया या है एक इनबाउंड क्लाइंट कनेक्शन (उदाहरण के लिए टेलनेट का उपयोग करना)।

यहाँ एक अच्छा उदाहरण है: http://blog.homecloud.ca/2010/03/scripster-interactive-scala-repl-using.html

तुम भी अपने सर्वर में एक दुभाषिये उदाहरण की मेजबानी कर सकता है, तो एक वेब इंटरफेस का पर्दाफाश। Drop into interpreter during arbitrary scala code location

+1

पिछले समान प्रश्न में उत्तर के बाद http://stackoverflow.com/questions/4131006/attach-a-clojure-repl-to-a-running-jvm ऐसा लगता है कि यह संभव है, कम से कम एक क्लोजर प्रतिलिपि (स्कैला मुझे भी लगता है) – jneira

+0

मुझे लगता है कि यह जवाब विकल्प दिखाने में अच्छा है और लिखने के समय स्कैला में इस तरह की चीज करने का कोई विकल्प नहीं था, लेकिन अब ऐसा लगता है कि https://github.com/ngocdaothanh/scalive ऑफर कर सकता है समान समाधान –

+0

मुझे लगता है कि मेरे पास एक स्टैकर है ... इस पर डाउनवोट और मेरे कुछ अन्य उत्तरों का कोई मतलब नहीं है। –

5

आप इस का उपयोग कर सकते हैं: https://github.com/wirde/swank-inject

आप एक चल जावा प्रक्रिया के लिए एक Clojure repl देते हैं (रिमोट डिबगिंग सक्षम करके) देता है।

आप कई वर्गों (सिंगलेट्स) निर्दिष्ट करने में भी सक्षम हैं जिसके लिए उदाहरण पाए जाएंगे और प्रतिलिपि में उपलब्ध प्रतीक के लिए बाध्य होंगे।

1

स्कैला आरईपीएल के लिए अन्य जेवीएम से कनेक्ट करने के लिए, Scalive पर एक नज़र डालें।

संबंधित मुद्दे