마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이클립스에서 아파치톰캣 연동 후 WebApps\ROOT의 jsp 파일 불러오려고 하는데 안되네요ㅠ

0 추천

안녕하세요.

현재 jsp, mysql로 웹사이트를 만들고 있는데요.

기초적인 단계지만 하루종일 안되어 질문드려요ㅠ

 

현재 매뉴얼 따라 하면서 jsp를 아파치톰캣하고 연동했고요.

이클립스에서 html 파일 작성 후 서버 WebApps\ROOT에 있는 jsp 파일을 불러오려고 하는데

'이 페이지를 표시할 수 없습니다.'는 에러가 계속 뜨네요.

 

아래는 html 코드고요

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

안녕하세요, 여러분!<br>
id를 입력하세요.<br>

<form method=get action="http://localhost/id.jsp" >

<input type="text" name="id">
<input type="submit" value="확인">
<input type="reset" value="취소">

</form>

</body>
</html>

 

아래는 WebApps\ROOT 경로에 있는 jsp파일이에요.

<%@ page contentType="text/html;charset=euc-kr" %>
<html>
<body>
여기는 localhost입니다.<p>
<%= request.getParameter("id") %>님, 어서오세요!
</body>
</html>

 

에러는 아래와 같은 그림으로 나옵니다.

 

시작 단계에서 막혀서 계속 헤매고 있는데 안드로이드펍님들 도와주시면 정말 감사하겠습니다. ㅠ

뿌요뿌요 (1,350 포인트) 님이 2015년 12월 9일 질문

1개의 답변

0 추천
 
채택된 답변

톰캣이 80 포트로 구동되고 있는게 맞나요?

기본적으로 톰캣 설치하면 8080 포트로 돌아갈 겁니다. 그리고 http://localhost:8080하면 톰캣 기본 페이지 열립니다.

위 사항 확인하신 상태에서 프로젝트 진행하신 거라면..

먼저 웹 루트(WebApps\ROOT)에 index.html 파일 만들어서 열리는지 확인해보세요..

isul (7,920 포인트) 님이 2015년 12월 10일 답변
뿌요뿌요님이 2015년 12월 10일 채택됨
네 톰캣이 80포트로 구동되고 있고요. 톰캣 설치 후 톰캣의 bin 폴더에서 startup.bat로 실행한 후 http://localhost:8080 들어가면 고양이 페이지가 잘 뜨는데요.

이클립스에서 서버 실행한 후 똑같이 http://localhost:8080 들어가려고 하면 페이지가 안뜨는데 그럼 이클립스 설정이 문제가 있는 건가요? 아니면 이클립스에서 서버 연동했기 때문에 크롬 브라우저에서 http://localhost:8080 치면 원래 안들어가지는 게 정상인가요?
이클립스와 연동했을 때도 문제없이 되어야 됩니다.
톰캣 구동 후..
개발 환경이 Windows라면
command 창 열어서 아래 명령 내려보세요..
netstat -na | findstr 8080
8080 포트에 접속 가능한지 확인하는 명령입니다.

리눅스라면
netstat -na | grep 8080
윈도우 개발환경이고, 톰캣을 톰캣 설치경로 내부 bin 폴더에서 startup.bat로 실행시켰을 때 cmd에서 netstat -na | findstr 8080을 입력하면,

TCP      0.0.0.0:8080      0.00.0:0                  LISTENING
TCP      127.0.0.1:8080 127.0.0.1:64203      TIME_WAIT
이라고 뜨고요.

이클립스에서 톰캣 서버 연동 후 cmd에서 netstat -na | findstr 8080 입력하면,
TCP      0.0.0.0:8080        0.0.0.0:0                  LISTENING
TCP      127.0.0.1:8080    127.0.0.1:64039     TIME_WAIT
TCP      127.0.0.1:8080    127.0.0.1:64043     FIN_WAIT_2
TCP      127.0.0.1:64043  127.0.0.1:8080       CLOSE_WAIT
TCP      [::]:8080                [::]:0                       LISTENING
라고 뜨네요

이러면 이클립스에서 실행 시 연결이 안되는 것인가요?
TCP      0.0.0.0:8080        0.0.0.0:0                  LISTENING

위와 같이 나오면 일단 톰캣 구동은 정상이네요..

웹 루트 설정이 잘못된 게 아닐런지요...
웹루트가 form method=get action="http://localhost/id.jsp"에서 http://localhost/id.jsp 주소를 말씀하시는 건가요?

http://localhost:8080/ 이 주소를 말씀하시는 건가요? 우선, 이클립스에서 톰캣 구동 후 크롬에서 http://localhost:8080/ 입력하면 404에러가 계속 뜨는 상태고, 톰캣 경로에서 bin 폴더 내의 startup.bat로 톰캣 구동 후 http://localhost:8080/ 경로로 들어가면 고양이 홈페이지가 잘 뜨는 상태입니다.

정 안되면 이클립스하고 톰캣을 아예 다 지워버리고 다시 까는 게 가장 좋은 방법일런지요...(톰캣은 8.0 버전, 7.0 버전 모두 사용해보았습니다)
[프로젝트 속성 - Web Project Settings - Context root]에 있는 걸 이용해서 접속해보세요
http://localhost:8080/{Context root}
이클립스에서 Dynamic Web Project를 TEST로 만들었고 해당 폴더의 WebContent에서 id.html 파일(본문의 html 파일과 동일)을 만들었는데요.
말씀하신 대로 http://localhost:8080/{Context root}에서 Context root를 TEST로 넣고 http://localhost:8080/TEST/id.html로 들어가면 잘 들어가집니다.
그런데 id.jsp 파일을 톰캣 파일의 ROOT 내에 넣어 놓고 이를 불러오려고 할 때 에러가 계속해서 발생합니다.ㅠㅠ
id.jsp를 톰캣의 ROOT폴더가 아닌 프로젝트 폴더 내에 넣어두고 개발하면 되는거 아닌가요?
항상 {Context root}를 사용해서 접근하는거죠..
{Context root} 없이 하려면 {Context root}를 /로 설정해보세요..
이게 안된다면..
톰캣 설정 파일(server.xml)에서 <Context path="/" docBase="프로젝트의 웹 루트 경로" .... />를 설정해보세요..
아, 말씀하신 대로 id.jsp를 프로젝트 폴더에 넣어서 사용해도 되는 거군요!
그런 방식으로는 됐었는데 그러면 톰캣 서버를 사용하지 않고 클라이언트에서 바로 불러오는 것인줄 알아서 톰캣 서버를 사용하지 않는 것으로 생각했고 톰캣 경로에서 불러와야 톰캣 서버를 사용하는 방식으로 진행하는 줄 알아서 계속 톰캣 경로 내의 ROOT에서 불러오려고 했었는데요.
프로젝트 폴더에서 불러와도 톰캣 서버를 사용해서 불러오는 것이라면 그쪽으로 진행하면 될 것 같습니다!!
정말 안되가지고 이틀은 고생하고 있었는데 하나하나 설명해주셔서 정말 감사드립니다!ㅎㅎ 앞으로는 좀 더 발전해서 고급스런 질문 올리도록 하겠습니다ㅎ
...