我使用JAX-RSExceptionMapper来捕获应用程序异常并返回自定义输出。问题是,在映射器的上下文中,如果用户提供的头没有Accept
头,我不知道要返回哪种类型的输出(例如HTML和JSON)。目前,代码使用基于UriInfo请求路径的可怕黑客来确定选择哪种媒体类型。理想情况下,媒体类型应与抛出异常的方法上的@Produces注释相同,但我无法找到任何方式在ExceptionMapper
中获取该注释。获取@Produces在异常映射中抛出Exception的方法的注解
这是可能的,还是有一些其他的方式来返回一个合理的媒体类型?
其他答案:
This answer建议使用httpHeaders.getMediaType(),如果没有请求主体,因此不利于对GET请求返回传入请求的媒体类型或空。
这是implementation根据peeskillet的答案在下面。
在不解释问题的原因的情况下下调这个问题是非常无益的。我已经多次阅读这个问题来寻找问题,但对我来说似乎很好。 – elhefe