WAR파일을 tomcat에 적용시(File읽기관련)
사이
JSP공부한지 한 1주일 정도 되는 완전 쌩 초보입니다^^ㅎㅎJSP에서 ReadID.ini파일을 읽어오는 ReadID클래스를 사용하고 있습니다.
filePath를 아래와 같이 주었습니다.//this is for running JSP
private final String filePath_idList = System.getProperty(user.dir) + \\workspace\\IMRwiki\\WebContent\\idList.ini;
//this is for running ReadID.java
//private final String filePath_idList = System.getProperty(user.dir) + \\WebContent\\idList.ini; 위에 path는 이클립스 상에서 jsp실행시에 System.getProperty(user.dir)의 값이
D:\imhotk_Flagship\J2EE
이렇게 나오고요(이클립스에서 실행하면 파일을 잘 찾습니다.)
아래 path는 ReadID.java를 실행했을 때
D:\imhotk_Flagship\J2EE\workspace\IMRwiki
이렇게 나옵니다. (주석처리해두었습니다. 이것도 local에서 실행하면 잘 됩니다.)
그래서 이번에는 WAR파일 export한 후에 was의 webapps에 올려두고 tomcat을 실행한 후에
프로그램을 실행했습니다.
그런데 이번에는
java.io.FileNotFoundException: C:\Windows\system32\workspace\IMRwiki\WebContent\idList.ini (지정된 경로를 찾을 수 없습니다)
위와 같은 에러가 발생합니다. 물론 뒤에 path(\workspace\IMRwiki\WebContent\idList.ini)은 수정해야합니다^^
질문의 요지는
즉, war파일을 was에 올려두고 실행을 하면은
System.getProperty(user.dir)의 값이 C:\Windows\system32 인것 같은데요...
제 생각으로는 현재 프로그램이 실행되는 디렉토리라고 생각했는데 그게 아닌가보네요...
어떻게 해야할 지 모르겠습니다. 뭐 강제로 full path주면 될 것 같기는 한데요..
다른 곳에 올릴때마다 바꿔줘야 할 경우가 생길것 같습니다.
매번 path를 변경하지 않고 사용할 수 있는 방법이 없나요?^^;
또 System.getProperty(user.dir)은 Current Working Directory로 알고 있는데
왜 C:\Windows\system32로 나오는거져??
-
늘찬
환경이라는 실행환경에 따라 달라진다는 말씀이신가요??
-
낮선검객
user.dir 같은 값은 되도록이면 쓰지 않는것이 좋습니다.
user.dir은 환경에 따라서 그 값이 바뀌기 때문입니다.
그렇기 때문에 차라리 system property로 따로 나만의 property를 만들어 사용하는게
훨씬 더 처리하기 쉬워 질것입니다. ^^ -
안토니
수다님 답변 감사드립니다^^
제가 파일을 읽어오는 것은 readid.java가 읽어오고요 읽어온 값들을 vector로 return해주어서 jsp에서 사용하거든요
^^ 참조해주신 링크보면서 한번 해보겠습니다^^
좋은 하루 보내세요^^