2011-09-25 15 views
5

Voglio leggere file xml nella mia ascensore app:come leggere un file da una webapp ascensore

dati val = XML.load (new java.io.InputStreamReader (nuova java.io.FileInputStream (nomefile), codifica));

Tuttavia, sto ricevendo java.io.FileNotFoundException. dove dovrei inserire il file e qual è il percorso corretto dal mio codice scala?

BTW - Sto usando il molo integrato per i miei test, anche se ho bisogno di una soluzione per lo sviluppo e la produzione.

risposta

7

Ci potrebbe essere migliore soluzione per altre strade, ma c'è

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

o

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

che di solito puntano a file in src/main/resources/.

C'è anche

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

che può essere il metodo che si sta cercando.

+0

Quando ho provato questo metodo ho ottenuto MalformedUrlException. Non ho potuto capire se il contenuto del file o il percorso della risorsa non è stato formato bene. – oshai

+2

Hai iniziato la stringa con una barra ('/ myresource.res')? – Debilski

+0

Funziona: 'LiftRules.loadResourceAsXml ("/cities_hebrew_utf.xml ");' Grazie! – oshai

2

Per risolvere questo problema nel caso generale, new File("delme").createNewFile() e vedere dove finisce.

+0

Questo può cambiare a seconda della directory in cui è stato avviato il server. – Debilski

+1

Forse, ma per qualsiasi configurazione particolare funzionerà, e funzionerà in Lift o Wicket o Play o ... –

+0

Funziona per me nel mio sviluppo dell'ambiente. Spero che funzionerà anche quando lo spiegherò. Grazie! – oshai

Problemi correlati