You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:55:24