我使用JAX-RSExceptionMapper來捕獲應用程序異常並返回自定義輸出。問題是,在映射器的上下文中,如果用戶提供的頭沒有Accept
頭,我不知道要返回哪種類型的輸出(例如HTML和JSON)。目前,代碼使用基於UriInfo請求路徑的可怕黑客來確定選擇哪種媒體類型。理想情況下,媒體類型應與拋出異常的方法上的@Produces註釋相同,但我無法找到任何方式在ExceptionMapper
中獲取該註釋。獲取@Produces在異常映射中拋出Exception的方法的註解
這是可能的,還是有一些其他的方式來返回一個合理的媒體類型?
其他答案:
This answer建議使用httpHeaders.getMediaType(),如果沒有請求主體,因此不利於對GET請求返回傳入請求的媒體類型或空。
這是implementation根據peeskillet的答案在下面。
在不解釋問題的原因的情況下下調這個問題是非常無益的。我已經多次閱讀這個問題來尋找問題,但對我來說似乎很好。 – elhefe