2016-03-14 53 views
0

我的端點被定義到達終點

@RequestMapping(value = "/hello", method = RequestMethod.POST) 
@ResponseBody 
public Map<String, String> hello() { 
    ..... 
} 

在我的方面類彈簧控制,我以前如何處理使用Spring AOP例外,

@Around("execution(* org.example.metrics.dropwizard.SampleController.hello(..))") 
public Object aroundCallingHello(ProceedingJoinPoint joinPoint) throws Throwable 
{ 
} 

比方說,我的端點將一個java對象作爲參數(POST調用)保存在數據庫中。 來自網頁的請求使用JSON。如果JSON結構不匹配JAVA POJO結構,則會拋出異常。但我無法在Aspect類中捕獲該異常(aroundCallingHello方法不起作用)。如何在AOP中捕獲這樣的異常(請求甚至未到達控制器中的端點)。我需要跟蹤應用程序中的各種異常。謝謝。

+0

你可以在'aroundCallHello'方法中顯示代碼嗎? –

+0

'\t嘗試System.out.println(「Chiru at aroundCallingHello !!!」); \t \t counterService.increment(「method.invoke.hello」); \t \t \t \t \t return joinPoint.proceed(); } – user6059068

+0

請看這個:'\t嘗試System.out.println(「at aroundCallingHello !!!」); \t \t counterService.increment(「method.invoke.hello」); \t \t \t \t \t return joinPoint.proceed(); } catch(Throwable tr){System.out.println(「at catch aroundCallingHello !!!」); }'沒有語句在控制檯中打印 – user6059068

回答

0

您應該使用@ControllerAdvice以實現這些類型的異常處理。你可以找到一個完整的explanation with example here。您可以有一個方法(或多個方法)來處理不同類型的異常(包括如果您有任何自定義異常)。希望這可以幫助!

+0

謝謝,這是有幫助的 – user6059068