主要报错:
com.fasterxml.jackson.databind.JsonMappingException: org.apache.tomcat.util.http.fileupload.impl.InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null (through reference chain: org.apache.catalina.connector.RequestFacade[1]->org.apache.catalina.connector.RequestFacade["parts"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)
Caused by: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.impl.InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null
at org.apache.catalina.connector.Request.parseParts(Request.java:2970)
at org.apache.catalina.connector.Request.getParts(Request.java:2834)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1098)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:689)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
... 65 more
Caused by: org.apache.tomcat.util.http.fileupload.impl.InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null
at org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.init(FileItemIteratorImpl.java:151)
at org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.getMultiPartStream(FileItemIteratorImpl.java:205)
at org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.findNextItem(FileItemIteratorImpl.java:224)
at org.apache.tomcat.util.http.fileupload.impl.FileItemIteratorImpl.<init>(FileItemIteratorImpl.java:142)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:252)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:276)
at org.apache.catalina.connector.Request.parseParts(Request.java:2932)
... 73 more
前台使用APIpost传参数
后台controller代码:
@RestController
@RequestMapping("/meeting")
@RequiredArgsConstructor
@Metrics
public class MeetingController {
@RequestMapping("testWordExport")
public void testWordExport(@RequestParam String meetingId,HttpServletRequest request) throws Exception{
System.out.println("testWordExport::::");
meetingService.wordExport(null, null, null);
}
}
我的问题是请求一直进入不了接口,这种传参方式一直报错,我一直以为传参问题,因为报错也是提示传参问题,在网上找了大半天才解决,坑爹啊啊啊啊啊,只要传参HttpServletRequest就会报错, 去掉HttpServletRequest request请求就能进入接口,在这个controller里面试了好几个方法,都是这个问题,只要传参数HttpServletRequest就报错,所以猜测是配置问题,直到看到一篇博文,是因为@RestController原因,换成@Controller就好了
报错提示content type是null,传参的head里面确实没有content-type,但是我加了,依然报错,只是不是这个报错了,换成别的报错了,网上也有说把head里面确实没有content-type这个去掉就好,对我的问题,解决不了,最后的结局方法就是,前面传参数依然不传content-type,将@RestController原因,换成@Controller就好了
博文地址:https://www.bbsmax.com/A/8Bz8kqX1dx/