2011-09-25 39 views
5

Tôi muốn đọc file xml trong ứng dụng thang máy của tôi:làm thế nào để đọc một tập tin từ một webapp nâng

dữ liệu val = XML.load (mới java.io.InputStreamReader (java.io.FileInputStream mới (tên tệp), mã hóa));

Tuy nhiên, tôi nhận được java.io.FileNotFoundException. nơi tôi nên đặt các tập tin, và con đường chính xác từ mã scala của tôi là gì?

BTW - Tôi đang sử dụng cầu nối nhúng cho thử nghiệm của mình, mặc dù tôi cần giải pháp cho sản xuất và phát triển.

Trả lời

7

Có thể có giải pháp tốt hơn cho con đường khác nhưng có

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

hoặc

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

mà thường trỏ đến file trong src/main/resources/.

Ngoài ra còn có

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

đây có thể là phương pháp mà bạn đang tìm kiếm.

+0

Khi tôi thử phương pháp này, tôi đã nhận được MalformedUrlException. Tôi không thể hiểu được nếu nội dung tệp hoặc đường dẫn tài nguyên không được định dạng tốt. – oshai

+2

Bạn đã bắt đầu chuỗi có dấu gạch chéo ('/ myresource.res') chưa? – Debilski

+0

Nó hoạt động: 'LiftRules.loadResourceAsXml ("/cities_hebrew_utf.xml ");' Cảm ơn! – oshai

2

Để giải quyết vấn đề này trong trường hợp chung, new File("delme").createNewFile() và xem vị trí kết thúc.

+0

Điều này có thể thay đổi tùy thuộc vào thư mục máy chủ được khởi động. – Debilski

+1

Có thể, nhưng đối với bất kỳ cấu hình cụ thể nào, nó sẽ hoạt động, và nó sẽ hoạt động trong Nâng hoặc Wicket hoặc Chơi hoặc ... –

+0

môi trương phat triển. Hy vọng nó sẽ làm việc cũng khi tôi sẽ triển khai nó. Cảm ơn! – oshai

Các vấn đề liên quan