alwaysUseFullPath을 true로 했을 때 적용이 되지 않아 보입니다
- 작성자 :
- 강*원
- 작성일 :
- 2014-08-28 12:30:47
- 조회수 :
- 1,274
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
web.xml의 DispatcherServlet에 대한 mapping 값으로
<url-pattern>/board/image/*</ulr-pattern>
을 지정하고,
SpringMVC의 Controller 에
@RequestMapping("/board")
public class BoardController {
@RequestMapping("/image/{boardId}/{imageId}")
public void getImage(
@PathVariable String boardId,
@PathVariable String imageId,
HttpServletRequest req,
HttpServletResponse res
) {
// Image를 Stream으로 전송한다.
...
}
이렇게 코드를 작성해서 처리하려는데,
Mapping 을 찾을 수 없다는 메세지만 나오고 해당 메쏘드가 호출이 되지 않습니다.
여기저기 찾아 봐서
DefaultAnnotationHandlerMapping 과 AnnotationMethodHandlerAdapter 의
alwaysUseFullPath 값을 true로 해도 마차가지네요.
모가 잘못 된 걸까요?
로그에는 다음과 같은 메세지로 나옵니다.
[org.springframework.web.servlet.PageNotFound] No matching handler method found for servlet request: path '/qna/1', method 'GET', parameters map[[empty]
<url-pattern>/board/image/*</ulr-pattern>
을 지정하고,
SpringMVC의 Controller 에
@RequestMapping("/board")
public class BoardController {
@RequestMapping("/image/{boardId}/{imageId}")
public void getImage(
@PathVariable String boardId,
@PathVariable String imageId,
HttpServletRequest req,
HttpServletResponse res
) {
// Image를 Stream으로 전송한다.
...
}
이렇게 코드를 작성해서 처리하려는데,
Mapping 을 찾을 수 없다는 메세지만 나오고 해당 메쏘드가 호출이 되지 않습니다.
여기저기 찾아 봐서
DefaultAnnotationHandlerMapping 과 AnnotationMethodHandlerAdapter 의
alwaysUseFullPath 값을 true로 해도 마차가지네요.
모가 잘못 된 걸까요?
로그에는 다음과 같은 메세지로 나옵니다.
[org.springframework.web.servlet.PageNotFound] No matching handler method found for servlet request: path '/qna/1', method 'GET', parameters map[[empty]
A
안녕하세요. 강신원님.
호출하신 URL 정보나 contextRoot 정보가 없어서 정확하게 답변드리기가 어려울 것 같습니다.
다만, 다음과 같이 변경해 보시면 도움이 되실 것 같습니다. (호출 URL이나 contextRoot 지정 등은 정상)
우선, servlet의 url-mapping에 prefix 경로를 지정하셨기 때문에, alwaysUseFullPath는 true로 지정하시는 것이 맞으실 것 같습니다.
문제는 로그 상에는 alwaysUseFullPath 설정이 true가 아닌 것 처럼 url-mapping 부분을 제외하시고 URL 정보를 가져온 것 같습니다.
이런 경우 RequestMapping이 분리된 것에 대한 처리 상에 문제일 수 있을 것 같기 때무넹 url-pattern은 "/board/*"만 지정하시고 alwaysUseFullPath=true로 지정해 봐주십시오.
그럼, 즐거운 하루되십시오.
감사합니다.
호출하신 URL 정보나 contextRoot 정보가 없어서 정확하게 답변드리기가 어려울 것 같습니다.
다만, 다음과 같이 변경해 보시면 도움이 되실 것 같습니다. (호출 URL이나 contextRoot 지정 등은 정상)
우선, servlet의 url-mapping에 prefix 경로를 지정하셨기 때문에, alwaysUseFullPath는 true로 지정하시는 것이 맞으실 것 같습니다.
문제는 로그 상에는 alwaysUseFullPath 설정이 true가 아닌 것 처럼 url-mapping 부분을 제외하시고 URL 정보를 가져온 것 같습니다.
이런 경우 RequestMapping이 분리된 것에 대한 처리 상에 문제일 수 있을 것 같기 때무넹 url-pattern은 "/board/*"만 지정하시고 alwaysUseFullPath=true로 지정해 봐주십시오.
그럼, 즐거운 하루되십시오.
감사합니다.