SPR-5767 - Misleading error message in HandlerMethodInvoker.resolveRequestBody()

This commit is contained in:
Arjen Poutsma
2009-05-22 10:45:52 +00:00
parent 0007643af9
commit d7d1ae89f3
3 changed files with 33 additions and 7 deletions

View File

@@ -437,7 +437,6 @@ public class HandlerMethodInvoker {
/**
* Resolves the given {@link RequestBody @RequestBody} annotation.
* Throws an UnsupportedOperationException by default.
*/
@SuppressWarnings("unchecked")
protected Object resolveRequestBody(MethodParameter methodParam, NativeWebRequest webRequest, Object handler)
@@ -447,7 +446,7 @@ public class HandlerMethodInvoker {
Class paramType = methodParam.getParameterType();
MediaType contentType = inputMessage.getHeaders().getContentType();
if (contentType == null) {
throw new IllegalStateException("Cannot extract response: no Content-Type found");
throw new HttpMediaTypeNotSupportedException("Cannot extract @RequestBody: no Content-Type found");
}
List<MediaType> allSupportedMediaTypes = new ArrayList<MediaType>();
for (HttpMessageConverter<?> messageConverter : messageConverters) {

View File

@@ -29,6 +29,7 @@ import org.springframework.core.Ordered;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.HttpMediaTypeNotSupportedException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
@@ -187,7 +188,7 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
List<MediaType> mediaTypes = ex.getSupportedMediaTypes();
if (mediaTypes != null) {
if (!CollectionUtils.isEmpty(mediaTypes)) {
response.setHeader("Accept", MediaType.toString(mediaTypes));
}
return new ModelAndView();