본문 바로가기

Development

스프링 + 제우스 조합에서 리다이렉트 문제점

특이하게 로컬 테스트일 경우 문제가 없었는데 개발서버, 스테이징서버 등의 서버환경에서 문제가 발생해 몇시간을 헤메고 있었다.

예를 들어 아래의 코드는 로컬환경에서 이상없이 작동하였다.

/* Controller.java */
@RequestMapping("/home/comment_view.do")
public ModelMap hello_world() ... {

    ...

    productUrl = "/product/product_view.do?" + returnParameter;
    response.sendRedirect(productUrl);
    return model;
}

하지만 서버환경으로 Deploy 했을 경우 반응하지 않는 문제를 가지고 있었다. 이상하게도 내가 투입되어 진행했던 코드에만 ... (역시 사람 타는건가...)

우리 팀 PL 님 도움으로 두어가지 해법을 건네 받게 되었는데. 리다이렉트를 뷰단에서 JSTL 로 처리하는 방법, 모델을 넘기지 않고 return 에 리다이렉트 코드를 심어서 던지는 법이었다.

변경된 코드는 아래와 같다.

/* Controller.java */
@RequestMapping("/home/comment_view.do")
public ModelMap hello_world() ... {

    ...

    productUrl = "/product/product_view.do?" + returnParameter;
    //response.sendRedirect(productUrl);
    model.addAttribute("productUrl", productUrl);
    return model;
}

뷰페이지 상단에 아래처럼 JSTL 리다이렉트 삽입.

/* comment_view.jsp */

<c:if test="${not empty productUrl}">
    <c:redirect url="${productUrl}" />
</c:if>

또 다른 방법 return 에 url 을 심는 방법은 아래의 방법으로 처리한다.

/* Controller.java */
@RequestMapping("/home/comment_view.do")
public ModelMap hello_world() ... {

    ...

    productUrl = "/product/product_view.do?" + returnParameter;
    //response.sendRedirect(productUrl);
    model.addAttribute("productUrl", productUrl);
    return return "redirect:" + productUrl;
}

뒤늦게나마 해결을 해서 마음이 놓이긴 하는데 왜!!! 그럴까...
게다가 로그도 안찍히고 어제 밤은 참으로 불편한 밤이었다.

개발 환경 : jdk 1.5. jeus 5, spring mvc 2.5.6









'Development' 카테고리의 다른 글

EUC-KR 과 UTF-8  (2) 2010.09.12
Selectors API Level 2  (0) 2010.09.05
개인 개발자에게 윈도우모바일 폰이 더 기대되는 이유  (0) 2010.07.23
아키텍트가 하는 일  (0) 2010.06.10
객체지향 개발론과 반복의 과정  (0) 2010.06.10