Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring控制器将图像发送到客户端导致406_Spring_Image_Bytearray_Http Status Code 406 - Fatal编程技术网

Spring控制器将图像发送到客户端导致406

Spring控制器将图像发送到客户端导致406,spring,image,bytearray,http-status-code-406,Spring,Image,Bytearray,Http Status Code 406,我试图在请求时将一个图像发送到前端,如果我将其作为JSON的一部分放在请求正文中,它就可以工作了,但是我想使用image/png,这更有意义,但是当我尝试这样做时,我得到了406 控制器: @RequestMapping(value = RESTPaths.EQUIPMENT_FILE_GET_IMAGE + "/{equipmentId}", method = RequestMethod.GET, produces = MediaType.IMAGE_PNG_VALUE) pu

我试图在请求时将一个图像发送到前端,如果我将其作为JSON的一部分放在请求正文中,它就可以工作了,但是我想使用image/png,这更有意义,但是当我尝试这样做时,我得到了406

控制器:

@RequestMapping(value = RESTPaths.EQUIPMENT_FILE_GET_IMAGE + "/{equipmentId}", method = RequestMethod.GET,
        produces = MediaType.IMAGE_PNG_VALUE)
public @ResponseBody byte[] insertDataFile(@PathVariable("equipmentId") final Long equipmentId)
        throws InternalServerError {
    return equipmentFileService.getImage(equipmentId);
}
测试(客户):


我缺少什么?

尝试在servlet-context.xml文件中添加mvc注释,该文件注册了ByteArrayHttpMessageConverter

<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>image/jpeg</value> <value>image/png</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
image/jpeg图像/png
已解决:

@RequestMapping(value = RESTPaths.EQUIPMENT_FILE_GET_IMAGE + "/{equipmentId}", method = RequestMethod.GET)
@ResponseBody
public  ResponseEntity<byte[]> getImage(@PathVariable("equipmentId") final Long equipmentId)
        throws InternalServerError {
    final HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.IMAGE_JPEG);
    return new ResponseEntity<byte[]>(equipmentFileService.getImage(equipmentId), headers, HttpStatus.OK);
}
@RequestMapping(value=RESTPaths.device\u FILE\u GET\u IMAGE+“/{equipmentId}”,method=RequestMethod.GET)
@应答器
公共响应属性getImage(@PathVariable(“设备ID”)最终长设备ID)
抛出内部服务器错误{
最终HttpHeaders=新HttpHeaders();
headers.setContentType(MediaType.IMAGE\u JPEG);
返回新的ResponseEntity(equipmentFileService.getImage(equipmentId)、Header、HttpStatus.OK);
}

您能否澄清您使用的是哪个版本的Spring,它与4.1+兼容?建议的解决方案解决了您的问题了吗?还是仍然不起作用?我尝试了(使用java配置),但没有帮助,我正在查看我的版本
@RequestMapping(value = RESTPaths.EQUIPMENT_FILE_GET_IMAGE + "/{equipmentId}", method = RequestMethod.GET)
@ResponseBody
public  ResponseEntity<byte[]> getImage(@PathVariable("equipmentId") final Long equipmentId)
        throws InternalServerError {
    final HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.IMAGE_JPEG);
    return new ResponseEntity<byte[]>(equipmentFileService.getImage(equipmentId), headers, HttpStatus.OK);
}