小编May*_*yal的帖子

Spring-boot HttpMediaTypeNotAcceptableException 没有被同一控制器中的 @ExceptionHandler 捕获

在我的 Spring Boot 应用程序中,我有一个用于生成和使用 JSON 请求的 post 请求的控制器,并且我已使用 HttpMediaTypeNotAcceptableException 为该控制器定义了 @ExceptionHandler 来捕获 HttpMediaTypeNotAcceptableException(406 状态代码)异常。

现在,每当我使用错误的 ACCEPT 标头(例如 application/pdf)调用 post 请求时,定义的异常都不会被调用。

我不想定义 ControllerAdvice,因为我想为此控制器抛出特定错误。

代码:

@RestController
@RequestMapping("/school")
public class SchoolCotroller {

    @Autowired
    private SchoolService schoolService;

    @PostMapping(produces = "Application/Json", consumes = "Application/Json")
    @ResponseStatus(HttpStatus.CREATED)
    public School postData(@Valid @RequestBody School school)  {

       return  schoolService.save(school);

    }
 @ExceptionHandler(HttpMediaTypeNotAcceptableException.class)
    String handleMediaTypeNotAcceptable(
            final HttpMediaTypeNotAcceptableException exception,
            final NativeWebRequest request) {
        return "acceptable MIME type:" + MediaType.APPLICATION_JSON_VALUE;
        }
}
Run Code Online (Sandbox Code Playgroud)

卷曲:

curl --location --request POST 'http://localhost:8080/school' \
--header 'Accept: application/pdf' \
--header …
Run Code Online (Sandbox Code Playgroud)

java spring exceptionhandler spring-boot

5
推荐指数
1
解决办法
1534
查看次数

Spring-kafka KafkaListener 在运行时自动启动行为

我正在使用 spring-Kafka 作为消费者应用程序运行一个 spring 应用程序。在 Kafka 监听器中,我们使用 SpEL 表达式设置了自动启动。我们在运行时更改此值以使此表达式为 false。当我们更改属性时,KafkaListener 将停止消费更多消息。

问题:这是停止轮询进一步记录的正确方法还是我们应该使用 kafkaListenerEndpointRegistry 并停止服务?这两者有什么区别?

另一个问题是,如果我有另一个应用程序使用同一消费者组,所有分区都会重新分配给该应用程序吗?

apache-kafka spring-boot spring-kafka

2
推荐指数
1
解决办法
4642
查看次数