2011-09-25 11 views
5

मैं अपने लिफ्ट अनुप्रयोग में xml फ़ाइल पढ़ना चाहते हैं से एक फ़ाइल को पढ़ने के लिए:कैसे एक लिफ्ट webapp

वैल डेटा = XML.load (नई java.io.InputStreamReader (नई java.io.FileInputStream (फ़ाइल नाम), एन्कोडिंग));

हालांकि, मुझे java.io.FileNotFoundException मिल रहा है। मुझे फाइल कहां रखना चाहिए, और मेरे स्कैला कोड से सही रास्ता क्या है?

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

उत्तर

7

वहाँ अन्य रास्तों के लिए बेहतर समाधान हो सकता है लेकिन वहाँ है

var LiftRules.getResource : (String) ⇒ Box[URL] 

या

def LiftRules.doWithResource(name: String)(f: (InputStream) ⇒ T): Box[T] 

जो आम तौर पर src/main/resources/ में फ़ाइलों को इंगित।

वहाँ भी

def LiftRules.loadResourceAsXml(name: String): Box[NodeSeq] 

जो विधि आप देख रहे हैं हो सकता है।

+0

जब मैंने इस तरीकों का प्रयास किया तो मुझे MalformedUrlException मिला। मैं समझ नहीं पाया कि फ़ाइल सामग्री या संसाधन पथ अच्छी तरह से नहीं बनाया गया था। – oshai

+2

क्या आपने स्लैश ('/ myresource.res') के साथ स्ट्रिंग शुरू की थी? – Debilski

+0

यह काम करता है: 'LiftRules.loadResourceAsXml ("/cities_hebrew_utf.xml "); धन्यवाद! – oshai

2

सामान्य स्थिति में इस समस्या को हल करने के लिए, new File("delme").createNewFile() और देखें कि यह कहां समाप्त होता है।

+0

यह सर्वर की शुरुआत में निर्देशिका के आधार पर बदल सकता है। – Debilski

+1

शायद, लेकिन किसी विशेष कॉन्फ़िगरेशन के लिए यह काम करेगा, और यह लिफ्ट या विकेट या प्ले में काम करेगा या ... –

+0

यह मेरे लिए मेरे लिए काम कर रहा है विकास पर्यावरण। उम्मीद है कि जब मैं इसे तैनात करूँगा तो यह भी काम करेगा। धन्यवाद! – oshai