2011-08-17 16 views
9

का मिश्रण मैं अक्का, स्प्रे और जेटी युक्त एक स्टैंडअलोन जार बनाने की कोशिश कर रहा हूं। आदर्श रूप में मैं उस एकल फ़ाइल में पूरे एप्लिकेशन को बिना किसी बाहरी फाइल के वितरित करता हूं।अक्का, स्प्रे, और एम्बेडेड जेटी

मैं एक एम्बेडेड जेट्टी सर्वर उदाहरण

def main(args: Array[String]): Unit = { 
    val server = new Server(9012); 
    server.start(); 
    server.join(); 
    Thread.sleep(2000); 
    server.stop(); 
} 

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

अद्यतन: मैं एक बहुत Alois Cochard (मैं एक वेब पटकथा पृष्ठभूमि से आ रहा हूँ, और जावा वेब सेवाओं के आसपास मेरे सिर हो रही द्वारा प्रेरित जांच के एक धागा करने के लिए इस समस्या को हल करने के लिए धन्यवाद, के करीब हो रही है है रहा ... चुनौतीपूर्ण!)। मैंने सर्वर शुरू करने के लिए अपना main method संशोधित किया है और Jetty और akka configuration फ़ाइलों को प्रारंभ करने वाले टेम्पलेट में पढ़ रहे हैं। यह उन फ़ाइलों के दोनों पढ़ रही, लेकिन जब मैं जेट्टी सर्वर पर करने के लिए नेविगेट/अब मैं इस हो रही है:

HTTP ERROR: 500

Problem accessing /. Reason:

assertion failed: 0 actors for id 'spray-root-service' found, expected exactly one

मैं जानता हूँ कि मैं कुछ मूर्ख (और शायद यह है कि मैं एसबीटी नीचे तोड़ने के लिए और का उपयोग करना चाहिए याद कर रहा हूँ , लेकिन ग्रहण में बस संकलन और चलाने में सक्षम होने के बाद, और फिर ब्राउज़र में रीफ्रेश करने में सक्षम होना बहुत आसान और आकर्षक है)।

अद्यतन # 2: पता लगा समस्या। मैं WebAppContext ऑब्जेक्ट नहीं बना रहा था, जिसका अर्थ था कि web.xml कभी नहीं पढ़ रहा था, और इस प्रकार अक्का को कभी लोड नहीं किया जा रहा था। This is the revised मुख्य विधि जो अब काम कर रही है।

+0

क्या आप [sbt-assembly] (https://github.com/sbt/sbt-assembly) के बारे में जानते हैं? – AmigoNico

उत्तर

5

स्प्रे टेम्पलेट के अनुसार, आप web.xml विन्यास फाइल में स्प्रे सर्वलेट कनेक्टर जोड़ना चाहिए:

http://github.com/spray/spray-template/blob/master/src/main/webapp/WEB-INF/web.xml

आप कैसे एक standealone घाट कॉन्फ़िगर करने के लिए इस का उपयोग करने के बारे में कुछ जानकारियां प्राप्त कर सकते हैं BTW

http://exist.sourceforge.net/deployment.html#d47e594

, अपनी परियोजना एल के लिए एक आधार के रूप में स्प्रे टेम्पलेट का उपयोग कर: फ़ाइल को यहां (वहाँ netty दस्तावेज में निश्चित रूप से बेहतर संदर्भ सीधे है) ओक एक अच्छा विचार की तरह;)

+0

टिप्पणी के लिए धन्यवाद, Alois। मेरी समस्या को सीधे हल नहीं किया, लेकिन यह मुझे सही दिशा में ले गया और अंततः मुझे यह पता चला। चीयर्स! –

+0

आपका स्वागत है! –

+0

@ जॉन Biesnecker, क्या आप अपना समाधान साझा कर सकते हैं? – tiagoboldt

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