1.项目是SpringBoot框架,里面的 module 分了层级,在最内层的放置业务处理逻辑的 module 中新增了一个影像件上传的 module,controller 层代码如下

    //excel批量导入数据
    @PostMapping(value = "/test/import")
    public A testService(@RequestParam("file") MultipartFile file) {
        A a = new A();
        try {
            serviceImpl.deal(file);
        } catch (Exception e) {

            return a;
        }
        return a;
    }

很普通的一个文件上传功能,将启动类启动后,使用 postman 测试,却出现了 415 错误

{
    "timestamp": "2022-06-22",
    "status": 415,
    "error": "Unsupported Media Type",
    "exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
    "message": "Content type 'multipart/form-data;boundary=--------------------------032085667398344677722302;charset=UTF-8' not supported",
    "path": "/test/import"
}

 从往上查了一些资料,有的说是

1)代码注解不对:记录上传文件失败以及使用@requestbody问题_阳光温暖的博客-CSDN博客

2)headers 设置的不对:java上传文件 415,【已解决】Mac中Postman去POST实现文件上传时出错:HTTP 415 Unsupported Media Type..._醉鹅娘的博客-CSDN博客

 3)出入的 headers 设置的不对:PostMan测试接口,出现415报错,Unsupported Media Type_Steve_Monster的博客-CSDN博客_接口报错415

。。。

不过这些并不适用于这次的情况。

另外在测试以前写的上传功能时,并没有出现这个情况。

最后同事说了一句话,你新建的 module 是不是没有加入到启动类里面,,,

擦,竟然忘了这茬,赶紧补救,在最外层的和启动类的 module 的 pom 文件中加入了新建 module 的声明,刷新 maven 后,重启启动类,再次请求,有了正常返回

不过,按照以往的经验来说,新建的 module 没有加入到最外层的和启动类的 module 的 pom 文件中应该会报出 500 的错误,而不是 415 ,猜测可能是请求的类型是文件类型,改成 json 串测试。

虽然信息提示请求类型不对,不过状态确实是 500。

开发要仔细,找错方向更坑。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐