当找不到资源时,如何在@ExceptionHandler中返回JSON

当找不到资源时,如何在@ExceptionHandler中返回JSON,json,exception-handling,spring-web,Json,Exception Handling,Spring Web,如果发生错误,提供资源(.js;.css…的应用程序如何返回JSON实体 我编写了一个ControllerExceptionHandler,根据: package com.my.rest; 导入com.my.rest.errors.ErrorMessage; 导入com.my.rest.errors.ErrorMessageFactory; 导入com.my.service.errors.NotFoundException; 导入com.my.service.errors.ValidationE

如果发生错误,提供资源(.js;.css…的应用程序如何返回JSON实体

我编写了一个
ControllerExceptionHandler
,根据:

package com.my.rest;
导入com.my.rest.errors.ErrorMessage;
导入com.my.rest.errors.ErrorMessageFactory;
导入com.my.service.errors.NotFoundException;
导入com.my.service.errors.ValidationException;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.http.HttpHeaders;
导入org.springframework.http.HttpStatus;
导入org.springframework.http.MediaType;
导入org.springframework.http.ResponseEntity;
导入org.springframework.web.bind.annotation.ControllerAdvice;
导入org.springframework.web.bind.annotation.ExceptionHandler;
导入org.springframework.web.bind.annotation.ResponseBody;
导入org.springframework.web.bind.annotation.ResponseStatus;
导入org.springframework.web.context.request.WebRequest;
导入org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
导入静态org.springframework.http.HttpStatus.NOT_FOUND;
@控制器建议
@应答器
公共类GlobalControllerExceptionHandler扩展了ResponseEntityExceptionHandler{
@自动连线
私人ErrorMessageFactory messageFactory;
@ResponseStatus(未找到)
@ExceptionHandler({NotFoundException.class})
公共响应handleServiceException(运行时异常e、WebRequest请求){
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION\uJSON\uUTF8);
返回handleExceptionInternal(e,messageFactory.generateMessage(e),Header,HttpStatus.NOT_FOUND,request);
}
}
如果请求URL为:
https://my-server/resources/a.js
,但找不到
a.js
,此异常处理程序导致由
AbstractMessageConverterMethodProcessor
引发的
HttpMediaTypeNotAcceptableException
,因为
ContentNegotiationManager
使用基于扩展名
.js
的策略,并确定
ErrorMessage
不适用于媒体类型
application/javascript

我的问题是:是否有一种方法可以忽略对媒体类型的检查,从而始终发送JSON错误响应,以便客户端错误管理可以解析它

多谢各位