2013-03-15 3 views
0

나는 다음과 같이 DOM 파서 를 사용하여 WebContent/META-INF 폴더에있는 XML 파일을 (ABC.xml 말을) 읽고 그것을 분석하고충돌 내 응용 프로그램에서

File xmlFile = new File("WebContent//META-INF//ABC.xml"); 
parser.parse(new InputSource(new FileReader(xmlFile.getAbsolutePath()))); 

그것 보여주는 파일은 예외를 찾을 수 없습니다 나는()를 xmlFile.getAbsolutePath를 인쇄 할 때 그것은

D:\Softwares\SDE_7\eclipse\WebContent\META-INF\ABC.xml 

내 일식 설정이 그래서

에 위치해 곳입니다을 보여주는 I 간단한 자바 프로그램에서 같은 논리를 사용하고 올바른 경로 (프로젝트 폴더 구조)를 보여줍니다 절대 경로를 인쇄하기 위해 노력하고 프로그램

D:\GME_WorkSpace\Practice_1\WebContent\META-INF\sample.xml 

왜이 충돌은 잘 작동? 어떻게 수정합니까?

+0

WebContent는 사용자 환경의 Eclipse 환경에서 웹 애플리케이션 소스를 저장하는 디렉토리입니다. procution에서는이 디렉토리가 존재하지 않습니다. 배포 된 응용 프로그램의 파일과 파일 시스템이 포함 된 war 파일 만 있으면됩니다. –

+0

** Context-Root 폴더는 ** WebContent **입니까? 그게 사실이라면, 상대 경로에서 벗어날 수 있습니다. 또한 왜 당신은 당신의 이름의 길에 두 개의 슬래시가 있습니까? 백 슬래시가있는 경우에만 사용하십시오. – greenkode

+0

개발 환경에서만이 오류가 발생합니다. 충돌이 발생한 이유를 설명해주십시오. – Dobby

답변

1

WebContent에 대해 이야기하는 경우 서블릿을 작성한 것처럼 보입니다.

그런 경우 ServletContext를 사용하여 파일을 찾아야합니다.

getServletContext(). getRealPath (...)는 서블릿의 상대 파일 이름에 대한 전체 OS 경로를 가져옵니다.

getServletContext()는 HttpServlet에서 상속 한 모든 클래스에서 호출 할 수 있습니다.

0
ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
URL url = classLoader.getResource("WebContent//META-INF//ABC.xml"); 
File file = new File(url.toURI()); 
관련 문제