2011-05-03 5 views
0

내 프로젝트 디렉토리 구조 내가 ("/") Updatedata 클래스에서읽기 전쟁 파일

+0

은 어떤 방법이 시도 (꽤 vector basicvector.xml가 .WAR 또는 폴더의 루트에 있는지 여부를 질문에서 호출 말할 수 없다)? –

+0

getClass(). getResource ("/"); 하지만 경로를 반환 WEB-INF/class/ –

답변

0

, 당신은

getServletContext().getResourceAsStream("/basicvector.xml")

사용할 수 있습니다 그리고

/war/vector/basicvector.xml 
/war/WEB-INF/class/ 

을 다음 사용할 수 있기 때문에 코드의 구조라고 가정

또는

getServletContext().getResourceAsStream("/vector/basicvector.xml")

+0

마침 감사합니다 마튜 –

0

getClass()의 getResource을 basicvector.xml을 읽는 데 사용할 방법

/src 
/model 
/Updatedata.java 

/war 
/vector 
/basicvector.xml 

.; 하지만 돌아 경로 WEB-INF/클래스/

이 실행중인 동안 WEB-INF/클래스/폴더 CLASSPATH 확인을 위해 현재 디렉토리로 간주되기 때문이다. getClass()를 호출하면 현재 클래스에서 사용하는 클래스 로더가 호출되며 getResource()는 클래스 로더에게 파일을 찾도록 요청합니다. 그래서 "/"가 드라이브의 루트가 아니었고, 클래스 로더의 루트/현재 디렉토리였습니다.

상대 경로를 사용하여 XML 파일의 위치를 ​​뒤로 탐색 할 수 있습니다. 당신이 서블릿을 작성하는 경우

getClass().getResource("/../../vector/basicvector.xml");