Postman测试SaveAsDraft API报错:无法确定processinstanceid有效值
SaveAsDraft接口Internal Server Error 500排查问题
控制台错误日志
2023-09-29 17:14:53,673 68384308 [https-jsse-nio-8006-exec-8] ERROR c.w.e.service.EmailController - Error saving as draft for processinstanceid : DefaultInstanceID
API基本信息
- API地址:
https://localhost:8006/app/Email/saveAsDraft - 请求方式:POST
- 功能:保存邮件为草稿(SaveAsDraft)
- 请求体:JSON格式,数据源为数据库
- Postman使用的请求体内容:
{ "messageId": "<5432112345@xyz.com>", "mailFrom": "kingissingh@xyz.com", "processinstanceid": "DefaultProcessID", "mailTo": "singhisking@xyz.com", "subject": "Hi im singh" }
测试结果
- Postman返回响应:
Error while Saving as Draft - 触发Internal Server Error 500错误
- 无法确定
processinstanceid参数的正确输入值
相关代码实现
EmailController类代码
@RequestMapping("/app/Email") @RestController public class EmailController { private Logger log = LoggerFactory.getLogger(EmailController.class); @Autowired EmailService emailServices; @PostMapping(value = "/saveAsDraft") public ResponseEntity<Object> saveAsDraft(@RequestBody EmailConfiguration emailConfiguration, HttpServletRequest httpRequest) { if (!emailServices.validateEmailConfiguration(emailConfiguration)) { return ResponseEntity.badRequest() .body(ApplicationConstants.INVALID_REQUEST); } String currentStatus = ""; try { // 调用GraphService保存草稿 currentStatus = emailServices.saveAsDraft(emailConfiguration, httpRequest); } catch (Exception e) { log.error("Error saving as draft for processinstanceid : {}" , emailConfiguration.getProcessinstanceid()); return ResponseEntity.internalServerError() .body(ApplicationConstants.ERROR_SAVING_DRAFT); } return ResponseEntity.ok(currentStatus); } }
邮箱配置验证方法(EmailService实现类)
@Override public boolean validateEmailConfiguration(EmailConfiguration config) { try { if(StringUtils.isBlank(config.getProcessinstanceid()) || StringUtils.isBlank(config.getSubject()) || StringUtils.isBlank(config.getMailFrom()) || StringUtils.isBlank(config.getMailTo()) ) { return false; } } catch(Exception e) { log.error("Validation of email configuration failed :{}, {}",e.getMessage(),e); return false; } return true; }
核心疑问
当前使用的processinstanceid值为DefaultProcessID,但无法确定该参数的合法取值范围或正确值,导致调用接口时触发500错误,需明确该参数的正确输入规则或有效值来源。
内容的提问来源于stack exchange,提问作者Dev101
相关产品推荐
相关产品推荐

