मैं जेटी एम्बेड करके अपने आवेदन के लिए एक सरल webservice स्थापित करने की कोशिश कर रहा हूं। मैं दो अलग-अलग वेब सेवाएं उपलब्ध करना चाहता हूं, एक साधारण HTTP सर्वर जो स्थिर सामग्री (जो अंत में एक जीडब्ल्यूटी ऐप होगा) और एक कस्टम सर्वलेट जो सेवा के लिए जेएसओएन स्टेटस संदेश थूक सकता है।मैं एम्बेडेड जेटी के साथ स्थिर संसाधन और कस्टम सेवाएं कैसे स्थापित करूं?
मेरे वितरण फ़ोल्डर संरचना इस तरह दिखता है:
+ dist/
- MyApp.jar
+ lib/
+ html/
- index.html
और यहाँ क्या मैं अब तक एम्बेडेड सर्वर विन्यस्त करने के लिए है है। http://localhost/data/
पर जाकर मुझे अपने कस्टम सर्वलेट से सही ढंग से मेरा टेस्ट आउटपुट मिलता है, लेकिन मुझे डिफ़ॉल्ट अनुक्रमणिका को मेरी index.html फ़ाइल ढूंढने के लिए प्रतीत नहीं होता है।
public Webserver(int port) {
server = new Server(port);
ServletContextHandler context = new ServletContextHandler();
context.setResourceBase("./html/");
server.setHandler(context);
JsonDataApiServlet dataServlet = new JsonDataApiServlet();
DefaultServlet staticServlet = new DefaultServlet();
context.addServlet(new ServletHolder(dataServlet), "/data/*");
context.addServlet(new ServletHolder(staticServlet), "/*");
}
यह इस तरह बातों में जेट्टी embedding लोगों के लिए एक आम कार्य होगा .. मैं भी सही रास्ते पर लगता है कर रहा हूँ?
संपादित
बाहर कर देता है इस समस्या को जिस तरह से संबंधित पथ जेट्टी के अंदर गणना कर रहे हैं की एक गलतफहमी की वजह से था। मैं इसे java -jar dist\MyApp.jar
का उपयोग करके, दूरस्थ फ़ोल्डर के ऊपर एक फ़ोल्डर से चला रहा था, और जेटी dist\html
के बजाय dist\..\html
की तलाश में था। दूर फ़ोल्डर के अंदर से जार चलाना समस्या को हल करता है। मैं जवाब दूंगा कि मैंने इसे दूरस्थ निर्देशिका के अंदर से चलाने के बिना कैसे काम किया है।
_I को indexServlet को मेरी index.html file_ खोजने के लिए प्रतीत नहीं होता है, तो, जब आप "/index.html" पर जाते हैं तो आप क्या व्यवहार देख रहे हैं। जेटी किस उत्पादन का उत्पादन करता है? – Tim
धन्यवाद टिम, वह टिप्पणी मुझे सही दिशा में ले जाती है। – Collin