增加构建通知
This commit is contained in:
parent
4654395a56
commit
06d4c799b2
@ -139,7 +139,9 @@ public class HttpRequestNodeDelegate extends BaseNodeDelegate<HttpRequestInputMa
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理HTTP错误
|
||||
* 处理HTTP错误(4xx, 5xx)
|
||||
* <p>
|
||||
* 业务失败:设置完整的 output 信息后抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定是否继续
|
||||
*/
|
||||
private void handleHttpError(Exception e, long responseTime) {
|
||||
HttpStatusCode statusCode = null;
|
||||
@ -155,36 +157,51 @@ public class HttpRequestNodeDelegate extends BaseNodeDelegate<HttpRequestInputMa
|
||||
responseBody = serverError.getResponseBodyAsString();
|
||||
}
|
||||
|
||||
// 设置详细的 output 信息
|
||||
output.setStatusCode(statusCode != null ? statusCode.value() : 0);
|
||||
output.setResponseTime(responseTime);
|
||||
output.setIsSuccess(false);
|
||||
output.setErrorMessage(e.getMessage());
|
||||
|
||||
// ⚠️ 注意:HTTP 错误响应通常是 HTML 错误页面(不是 JSON),设置为 null 避免模板解析错误
|
||||
// 如果需要访问原始错误响应,可以从 errorMessage 中获取
|
||||
output.setResponseBody(null);
|
||||
|
||||
if (responseBody != null && !responseBody.isEmpty()) {
|
||||
output.setResponseBody(responseBody);
|
||||
output.setResponseSize((long) responseBody.length());
|
||||
}
|
||||
|
||||
String errorMsg = String.format("HTTP请求失败: 状态码=%d, 错误=%s",
|
||||
output.getStatusCode(), e.getMessage());
|
||||
|
||||
// 不在这里记录日志,由BaseNodeDelegate统一处理(避免重复记录)
|
||||
// 直接抛出异常,由BaseNodeDelegate统一处理continueOnFailure逻辑
|
||||
logInfo(errorMsg);
|
||||
|
||||
// 抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定:
|
||||
// - continueOnFailure=true: 调用 markFailure(e),设置 output.status=FAILURE,保存 output,继续执行
|
||||
// - continueOnFailure=false: 调用 terminateWorkflow(e),抛出 BpmnError,终止工作流
|
||||
throw new RuntimeException(errorMsg, e);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理一般错误(网络超时、连接失败等)
|
||||
* <p>
|
||||
* 技术异常:设置基本的 output 信息后抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定是否继续
|
||||
*/
|
||||
private void handleGeneralError(Exception e) {
|
||||
// 设置基本的 output 信息(即使是网络异常也要设置,方便模板访问)
|
||||
output.setIsSuccess(false);
|
||||
output.setStatusCode(0); // 0 表示未获取到 HTTP 状态码
|
||||
output.setErrorMessage(e.getMessage());
|
||||
output.setResponseBody(null);
|
||||
|
||||
String errorMsg = String.format("HTTP请求异常: %s - %s",
|
||||
e.getClass().getSimpleName(), e.getMessage());
|
||||
|
||||
// 不在这里记录日志,由BaseNodeDelegate统一处理(避免重复记录)
|
||||
// 直接抛出异常,由BaseNodeDelegate统一处理continueOnFailure逻辑
|
||||
logInfo(errorMsg);
|
||||
|
||||
// 抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定:
|
||||
// - continueOnFailure=true: 调用 markFailure(e),设置 output.status=FAILURE,保存 output,继续执行
|
||||
// - continueOnFailure=false: 调用 terminateWorkflow(e),抛出 BpmnError,终止工作流
|
||||
throw new RuntimeException(errorMsg, e);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user