2012-05-18 5 views
0

웹 응용 프로그램에서 사용하는 바람둥이 저장 TXT 파일 않습니다 "C를 : \ 프로그램 파일 \ 아파치 - 톰캣-7.0.27"
내가 설치 이클립스 한 "C : \ 프로그램 파일 \ 일식"
그리고 "C : \ workspace"에 작업 공간이 있습니다.어디 바람둥이에 설치 한

"Java perspective"를 사용하고 "helloWorld/web/WEB-INF/classes"로 기본 출력 폴더가있는 "Java Project" . 프로젝트의 구조는 다음과 같이 진행됩니다

-helloWorld 
---src 
-----servlets 
-------hello.java 
-------world.java 
---web 
-----WEB-INF 
-------jsp 
---------hello.jsp 
---------world.jsp 
-------lib 
-------web.xml 
---helloWorld.xml 
---record.txt 

의 doPost() hello.java에 임의의 숫자를 생성하고, 텍스트 파일 "record.txt"에 기록.
world.java에서 doPost()가 "record.txt"텍스트 파일을 열고 숫자를 읽습니다.

시스템이 작동하지만 원래 eclipse 프로젝트의 record.txt 파일에 입력 한 내용이 변경되지 않으며 파일에서 읽은 world.java가 정확히 hello.java가 생성 한 것입니다.
"C : \ Program Files \ apache-tomcat-7.0.27 \ work \ Catalina \ localhost \ helloWorld"를 선택했는데 jsp 파일 만 있습니다.
난 후 Tomcat을 다시 시작을 시도하고 다시 심지어 undelopy 다시 배포하지만, 이전의 생성 수는 여전히 존재한다. 컴퓨터를 다시 시작하지 않았습니다.

제 질문은 어디에서 record.txt 파일입니까? 그것은 확실히 이클립스 프로젝트에서 하나가 아닙니다.

답변

0

Eclipse 배치 프로젝트는 임시 폴더에서 실행됩니다. 경로는 다음과 같이 보입니다 ... 서버의 tmp0/conf/catalina/localhost/projectname ..... context.xml이이 작업에서 도움이 될 수 있습니다 ..

나는 절대 경로로 가야한다고 제안합니다. ... 나는 이클립스를 사용하는 동안 같은 문제에 직면했다 ... 그때 나는 심지어 사용자에게 링크를 제공해야했다 ...

0

프로젝트와 같은 이름으로 폴더에 대한 webapps 폴더를 확인하십시오.

C:\Program Files\apache-tomcat-7.0.27\webapps 

여기에는 정확한 폴더 구조와 record.txt 파일도 있습니다.

희망이 도움이됩니다.

1

Java 코드에서 상대 파일 경로를 사용하는 경우 웹 응용 프로그램과 관련이 없으므로 Tomcat을 실행하는 프로세스가 시작된 위치와 관련이 있습니다. 따라서 Tomcat bin 디렉토리 또는 유사한 위치에서 파일을 찾을 수 있습니다.

웹 응용 프로그램과 관련된 파일을 만들려면 webapp에 대한 경로를 얻어야합니다.이 경로는 서블릿에서 getServletContext(). getRealPath ("")를 호출하여 수행 할 수 있습니다.

+0

수정되었지만 경고가 있습니다. 서블릿 스펙에서는 컨테이너가 getRealPath()가 실제로 쓸 수있는 실제 경로를 반환하도록하는 것을 요구하지 않습니다. 파일 시스템처럼 보이게해야한다면, "temp dir"을 사용해야 할 것이다. 절대적으로 필요한 경우를 제외하고는 파일 시스템에 쓰지 않는 것이 좋습니다. –