Tomcat으로 web application 구현 시에..

786 views
Skip to first unread message

은메달

unread,
May 10, 2012, 10:17:30 PM5/10/12
to Korea Spring User Group
안녕하세요. 처음 글을 남기네요. 스프링 관련은 아니지만..

톰캣을 WAS 로 사용하여 웹사이트를 개발하는 중입니다. 톰캣 단독 구조로 아파치 HTTPD 랑 연동하지 않구요..

디렉토리 구조 중에 보면..
[web_root]/admin/index.htm
이 있고, 이리로 접속하면 매타태그를 사용하여 /admin/index.do 로 넘어가도록 했습니다.
*.do 로 스프링 디스펫치 서블렛 매핑이 되어 있구요..

목적은 http://xxx.xxx.xxx/admin 으로 접속할 경우 http://xxx.xxx.xxx/admin/index.do
로 가게끔 하려고 함이죠.

근데 이게 최근에 운영에 올렸더니 /admin/index.do 로 들어가면 404 가뜹니다.

이게 개발시엔 별문제가 없었거든요. 근데 전에도 운영에 올렸더니 지금과 동일한 문제가 발생해 HTTPD 를 붙여 rewrite
로 해결했었던게 기억이 나는 겁니다.

그래서 이런저런 테스트를 다시 해보니
이클립스에서 톰캣 잡아서 올리면 /admin/index.do 가 잡히고
톰캣을 직접 띄우면 /admin/index.do 가 404가 떨어지는 겁니다.(/admin 디렉토리를 지우면 잘 됩니다.)

그래서 톰캣 설정 파일을 서로 비교해 보왔는데 원인이 될만한 차이점을 발견하지 못하였습니다.

대체 왜 이럴까요.

2줄 요약 :
이클립스에서 톰캣 올리면 /admin/index.htm -> /admin/index.do 로 잘 넘어가는데
톰캣에 직접 올리면 /admin/index.htm -> /admin/index.do 넘어가고 404 떨어짐


방법 없음 아파치를 묶어야 하는데 고객쪽에서 관리 요소가 늘어나는걸 원치 않는 상황입니다. 즉 톰캣 단독으로 가길 원하는 거
죠. 설득하면 하겠는데, 그렇게 하건 말건 일단 저는 이 현상의 원인이 궁금하네요.

김준호

unread,
May 11, 2012, 2:07:54 AM5/11/12
to ks...@googlegroups.com
�ش� ������ ó���ϱ� ���ؼ� tomcat�� server.xml ���ϰ� web.xml, ������
���������� ���� ���ƾ� Ȯ���� �� ������ ���׿�.
���� �������� ������ ã��� ���� �����ϴ�.

2012�� 05�� 11�� 11:17, ���޴� �� ��:
> �ȳ��ϼ���. ó�� ���� ����׿�. ������ ����� �ƴ�����..
>
> ��Ĺ�� WAS �� ����Ͽ� ������Ʈ�� �����ϴ� ���Դϴ�. ��Ĺ �ܵ� ������ ����ġ HTTPD �� �������� �ʱ���..
>
> ���丮 ���� �߿� ����..
> [web_root]/admin/index.htm
> �� �ְ�, �̸��� �����ϸ� ��Ÿ�±׸� ����Ͽ� /admin/index.do �� �Ѿ���� �߽��ϴ�.
> *.do �� ������ ����ġ ���? ������ �Ǿ� �ֱ���..
>
> ������ http://xxx.xxx.xxx/admin ���� ������ ��� http://xxx.xxx.xxx/admin/index.do
> �� ���Բ� �Ϸ��� ������.
>
> �ٵ� �̰� �ֱٿ� ��� �÷ȴ��� /admin/index.do �� ���� 404 ����ϴ�.
>
> �̰� ���߽ÿ� �������� ���ŵ��. �ٵ� �� ��� �÷ȴ��� ���ݰ� ������ ������ �߻��� HTTPD �� �ٿ� rewrite
> �� �ذ��߾��� ����� ���� �̴ϴ�.
>
> �׷��� �̷��� �׽�Ʈ�� �ٽ� �غ���
> ��Ŭ�������� ��Ĺ ��Ƽ� �ø��� /admin/index.do �� ������
> ��Ĺ�� ���� ���� /admin/index.do �� 404�� �������� �̴ϴ�.(/admin ���丮�� ����� �� �˴ϴ�.)
>
> �׷��� ��Ĺ ���� ������ ���� ���� ���Դµ� ������ �ɸ��� �������� �߰����� ���Ͽ����ϴ�.
>
> ��ü �� �̷����.
>
> 2�� ��� :
> ��Ŭ�������� ��Ĺ �ø��� /admin/index.htm -> /admin/index.do �� �� �Ѿ�µ�
> ��Ĺ�� ���� �ø��� /admin/index.htm -> /admin/index.do �Ѿ�� 404 ������
>
>
> ��� ���� ����ġ�� ����� �ϴµ� �?�ʿ��� �� ��Ұ� �þ�°� ��ġ �ʴ� ��Ȳ�Դϴ�. �� ��Ĺ �ܵ����� ���� ���ϴ� ��
> ��. �����ϸ� �ϰڴµ�, �׷��� �ϰ� ���� �ϴ� ��� �� ������ ������ �ñ��ϳ׿�.
>

wonhee

unread,
May 11, 2012, 3:13:31 AM5/11/12
to ks...@googlegroups.com
혹시나 하고 적어봅니다.

톰캣을 받아놓고 바로 올리면 기본적으로 /admin 매핑이 있습니다. 이건 원래 톰캣 자체의 admin용입니다. 따라서 /admin/index.do 로 들어가면 설치되어 있는 톰캣 관리자모드의 index.do를 접근하려고 시도할테고 이게 없으면 404 에러가 나겠지요.
반면 이클립스에서 톰캣을 띄우는 경우 (WTP?)에는 이러한 관리자 모드등이 빠지고 설정한 webapp만 올라가게 됩니다. 따라서 매핑해놓은 /admin/index.do가 정상적으로 잡히는게 아닐까 싶네요.

은메달

unread,
May 14, 2012, 8:14:57 AM5/14/12
to Korea Spring User Group
네. 답변 달아 주신 부분은 확인했던 부분 입니다.

다른 디렉토리명으로 해도 마찬가지 입니다. /uhahaha 라는 디렉토리가 생성하고

/uhahaha/index.do 에 매핑되는 컨틀로러 매소드를 하나 등록 시켜 놓은 다음, 톰캣 실행 시키고 브라우져로 호출해보

톰캣 단독으로 띄울 경우 -> 404 -> /uhahaha/ 디렉토리 삭제하면 -> 정상적으로 요청이 수행됨
이클립스에 연동된 톰캣으로 띄울 경우 -> 정상적으로 요청이 수행됨 (/uhahaha/ 디렉토리가 있건 없건 간에..)

분명 web.xml 에는 *.do 로 서블릿 이 매핑되어 있습니다. 않되어 있다면 요청에 대한 정상적인 처리자체를 확인하지 못했
을 테니까요..

web.xml 의 서블릿 매핑부분
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/dispatcher-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


영문을 모르겠네요.

wonhee

unread,
May 17, 2012, 10:15:49 PM5/17/12
to ks...@googlegroups.com
이야기하신 [web_root] 라는 것이 톰캣의 webapp/ROOT를 지칭하는건가요 아니면 conf/Catalina/localhost 밑의 파일에서 지정한 특정 웹어플리케이션의 위치를 지칭하는건가요?
docBase를 지정한 설정파일은(아마도 ROOT.xml?) 어디에 있는지, 내용은 어떤지, 그리고 배포되어 있는 웹어플리케이션은 어디 있는지에 대한 정보가 필요할 거 같네요. 그리고 사용하고 계시는 톰캣 버전도 함께.




Reply all
Reply to author
Forward
0 new messages