[英]Error when performing "POST" operation in spring?
我已经从 angular 服务类发送了数据。 这里我发送了三个参数letter,documents,empList给 Api 进行 POST 操作
export class LetterService {
private baseUrl = 'http://localhost:8080/api/letter';
constructor(private http: HttpClient) { }
saveThree(letter: Object,documents: Object,empList: Object): Observable<Object> {
return this.http.post(`${this.baseUrl}` + `/create`, {letter,documents,empList});
}
在 Spring 启动端,我使用这个 @RequestBody 来映射来自服务的即将到来的 JSON 数据。 (您可以省略代码的内部逻辑,因为错误是另一回事) :
@PostMapping(value = "/letter/create")
public String postAllThree(@RequestBody LetterDto letterDto,
@RequestBody List<Document> document,@RequestBody SelectionCustomOfficeDto selectionCustomOfficeDto) {
ClkLetter clkLetter=clkLetterRepository.findById((long)1).get();
Selection selection=selectionRepository.findById((long)letterDto.getSelectionNo()).get();
Assessment assessment=assessmentRepository.findById((long)letterDto.getAssessmentNo()).get();
Letter letter=letterRepository.save(new Letter(clkLetter,letterDto.getInOut(),letterDto.getInOutNo(),letterDto.getInOutDate(),letterDto.getLetterIssuedSubBy(),letterDto.getLetterFile(),letterDto.getRepresentativeName()
,selection,assessment));
for(Document docume:document) {
if(docume.isChecked()) {
letterDocRepository.save(new LetterDoc(letter,docume,"a"));
}
}
return "success";
}
我得到的错误是:
[org.springframework.http.converter.HttpMessageNotReadableException:读取输入消息时出现I/O错误; 嵌套异常是 java.io.IOException: Stream closed]
为什么我收到这个错误? 我从 angular 发送的参数是不匹配还是我的 @Postmapping 操作有问题? 我也看到了其他文章和问题,但没有用。
您只能拥有一个@RequestBody。 将 {letter,document,empList} 合并到一个 DTO POJO 中。
public class MyDTO {
private Object letter;
private List<Object> documents;
private List<Object> empList;
// getters and setters
}
对于原始类型的请求参数,您可以使用 @RequestParam 并将它们附加到 URL 中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.