错误:达到获取方法 Json 对象以及文件部分的最大响应大小(Spring Boot Rest api)

问题描述 投票:0回答:1

我是java spring Rest的新手,我一直坚持使用http请求方法get和put,特别是下面的代码。 我已经成功上传带有图像文件的实体(事件)。但是,我无法在不遇到以下错误的情况下执行 get 方法。 我更多地考虑了我的控制器的 get 方法,它缺少一些东西,因为我得到了一个结果,但内容类型很奇怪。

邮差

获取http://localhost:8080/stem/events
错误:已达到最大响应大小

浏览器

[{"id":1,"title":"Indoor luchtkwaliteit = Frisse kop","description":"Met het meettoestel Frisse Kop gaan we aan de slag。We ontwerpen en bouwen dit helemaal zelf!我们 leren over 3D- ontwerpen en gaan hier zelf mee aan de slag.","startDate":null,"endDate":null,"startHour":null,"endHour":null,"image":{"id":1,"fileName" :"frissekop.jpg","fileType":"image/jpeg","content":"/9j/4AAQSkZJRgABAQEASABIAAD/4S3eRXhpZgAATU0AKgAAAAgADAEPAAIAAAAGAAAAngEQAAIAAAAQAAAApAESAAMAAAABAAEAAAEaAAUAAAABAAAAtAEbAAUAAAABAAAAvAEoAAMAAAABAAIAAAEyAAIAAAAUAAAAxAE7AAIAAAABA AAAAAITAAMAAAAAAAAAAAIKYAAIAAAABAAAAAIdpAAQAAAABAAAA2IglAAQAAAABAAAgTAAAIGBDYW5vbgBDYW5vbiBFT1MgMjAwMEQAAAAASAAAAAEAAABIAAAAATIwMjA6MDg6MjEgMTM6MDI6MTcAACeCmgAFAAAAAQAAArKCnQAFAAAAAQAAArqIIgADAAAAAQACAACIJwADAAAAA QMgAACIMAADAAAAAQACAACIMgAEAAAAAQAAAyCQAAAHAAAABDAyMzCQAwACAAAAFAAAAsKQBAACAAAAFAAAAtaRAQAHAAAABAECAwCSAQAKAAAAAQAA

有人可以帮我根据Image和Event的关系实现Get和update吗?

@Entity
@Table(name = "events")
@Data
public class Event {
    @Id
    @GeneratedValue
    private Integer id;
    private String title;
    @Lob
    private String description;
 
    
    @OneToMany(mappedBy = "event",cascade = CascadeType.ALL,
            orphanRemoval = true)
    private List<Image> images=new ArrayList<>();
   
  

   


    public void addImage(Image image) {
        images.add(image);
          image.setEvent(this);
    }

    public void removeImage(Image image) {
        images.remove(image);
        image.setEvent(null);
    }


    }
} ```


@Entity
@Getter
@Setter
@NoArgsConstructor
@Entity
@Table(name = "images")
public class Image {
    @Id
    @GeneratedValue

    private Integer id;
    private String fileName;
    private String fileType;
    @Lob
    private  byte []content;
    @ManyToOne(fetch = FetchType.LAZY)
  
    private Event event;

}

// Controller
@RestController
  @CrossOrigin
  public class EventController {
    @Autowired
   private EventService eventService;
    @Autowired
    private ImageService imageService;


    @GetMapping("/events")
    public List<Event> getAllEvents() {

        return eventService.getAllEvents();
    }

    @GetMapping("/events/{id}")
    public Event getEvent(@PathVariable Integer id) {
        return eventService.getEvent(id);

    }


    @PostMapping("/events")
    public void addEvent(@RequestPart("event") Event event, @RequestPart("file")MultipartFile file) {
            imageService.uploadImage(event,file);
    //    eventService.addEvent(event);

    }

    @PutMapping("/events/{id}")
    public void updateEvent(@PathVariable Integer id, @RequestPart Event event) {

        eventService.updateEvent(id, event);

    }


    @DeleteMapping("/events/{id}")
    public void removeEvent(@PathVariable Integer id) {

        eventService.removeEvent(id);

    }
spring file file-upload spring-data-jpa postman
1个回答
93
投票

这是一个

Postman
特定错误,它是由于设置中存在
Max Response Size
限制而生成的。默认情况下为 50 MB。这意味着,如果响应大小超过 50 MB,Postman 将使请求失败。

由于您正在接收

JSON
数据以及文件部分或文件
base64 string
base64
通常比实际文件大 30% 左右,您可能还想检查一下)
,更有可能抱怨响应大小超过限制,因为默认限制为 50 MB,文件可能大于该限制。

您可以通过进入“常规”下的“邮递员设置”并将

Max response size in MB
的默认值修改为所需的值(以 MB 为单位)来更改所需的值。或者将其设置为
0
,以防您想下载任何大小的响应。

© www.soinside.com 2019 - 2024. All rights reserved.