2016-10-26 2 views
0

나는 간단한 휴식 컨트롤러가 있습니다오류 URI의 중복에 ControllerAdvice 리드에서 Managment를 404

@RestController 
@RequestMapping("/api/v1/") 
public class OrderController { 
    @RequestMapping(value = "/orders2", method = RequestMethod.POST) 
    public OrderDto createOrder2(@RequestBody OrderDto order) throws Exception { 
     throw new Exception("Bouh!"); 
    } 
} 

을 그리고 세계적으로 예외를 관리 할. 나는이 같은 수행 할 수 있습니다 읽은 내용에서 :

@ControllerAdvice 
public class ErrorController { 

    @ExceptionHandler(Exception.class) 
    @ResponseStatus(value = HttpStatus.BAD_REQUEST) 
    public ErrorDto handleConflict(HttpServletRequest request, Exception e) throws Exception { 
     ErrorDto o = new ErrorDto(); 
     o.setMessage(e.getMessage()); 
     return o; 
    } 
} 

하지만 내 요청에 게시물을 할 때, 나는 다음과 같은 오류 얻을 :

26/10/2016 17:26:08.187 [http-nio-8080-exec-12] WARN o.s.web.servlet.PageNotFound - 
No mapping found for HTTP request with URI [/duorest/api/v1/api/v1/orders2] 
in DispatcherServlet with name 'rest' 

을 나는 왜 URI를 모르는 변경/duorest/API/V1/API/V1/ORDERS2

몇 가지 사실 :

  • 나는 나머지 컨트롤러 방법을 이동하면 내 코드는
  • 을 실행, 디버그 체크, 나는 오류를 얻을 나는 (내 ErrorDto 개체)
  • 스프링 프레임 워크 버전 4.3.3.RELEASE
  • 봄 기대 -data-rest-webmvc 버전 2.5.4.RELEASE

아무도 이미이 문제가 있습니까? 아니면 어떤 힌트?

답변

0

해결 되었습니까? 그렇지 않은 경우 handleConflict 메소드에서 @ResponseBody이 누락 된 상태에서 실행하십시오.

+0

나는 그것이 사소한 것이었다는 것을 알았습니다. 그것은 그것이 누락 된 주석이었습니다! – wishper

+0

당연히 항상 우리는 대부분의 시간을 그리워합니다. :) 좋은 대답이 당신을 도왔습니다. –