SpringBoot 自定义HttpMessageConverter出现NullPointerException错误

SpringBoot中HttpMessageConverter

HttpMessageConveter

这个接口中只有5个方法是必须要实现的,但今天粗心,按下了Ctrl + A全部实现了,但真正实现的只有那几个抽象方法。

因此出现错误。

1
2
3
4
@Override
public List<MediaType> getSupportedMediaTypes(Class<?> clazz) {
return null;
}

这个是IDE选择重写后的方法, 只返回NULL。
因此会发生如下NullPointerException错误。

1
2
3
4
5
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null
at java.base/java.util.ArrayList.addAll(ArrayList.java:702) ~[na:na]

1
Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]

解决方案

不重写 List getSupportedMediaTypes(Class<?> clazz) 这个方法;

或者调用那个空方法。(但有隐患)

1
2
3
4
@Override
public List<MediaType> getSupportedMediaTypes(Class<?> clazz) {
return getSupportedMediaTypes();
}