2011-09-25 4 views
5

리프트 웹 애플리케이션에서 파일을 읽는 방법 : (내 리프트 응용 프로그램에서 XML 파일을 읽을 수

발 데이터 =은 XML.load (새 java.io.InputStreamReader (새 java.io.FileInputStream의 filename), 인코딩));

그러나 나는 java.io.FileNotFoundException을 얻고 있습니다. 파일을 어디에 두어야하며 스칼라 코드에서 올바른 경로는 무엇입니까?

BTW - dev env 및 생산을위한 솔루션이 필요하지만 임베디드 부티크를 사용하고 있습니다.

답변

7

다른 경로에 대한 더 나은 해결책이있을 수 있지만

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

또는 일반적으로 src/main/resources/에있는 파일을 가리

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

있다.

또한 당신이 찾고있는 방법이 될 수 있습니다

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

어쩌면 특정 구성으로 작동하지만 Lift 또는 Wicket 또는 Play 또는 0120에서 시작됩니다. –

+0

내 작업 중입니다. 개발 환경. 그것을 배포 할 때도 작동하길 바랍니다. 감사! – oshai

관련 문제