В настоящее время у меня есть проблема, что я ищу артефакт в Дженкинсе. Если этот артефакт не может быть найден, то 404 должен вернуться. Пока это работает довольно хорошо. К сожалению, я не получаю сообщения и только ErrorCode 404. Я хотел бы вернуть сообщение с дополнительной информацией. < /P>
Вот мой код. < /P>
конечная точка: < /p>
@GET
@Path(API_RESOURCE_IMAGE_REPORT)
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_HTML)
@Operation(summary = "", description = "")
@APIResponses(
value = {
@APIResponse(
responseCode = "200",
description =
"Request successful",
content = @Content(mediaType = MediaType.TEXT_HTML)),
@APIResponse(
responseCode = "404",
description = "Resource not found ",
content =
@Content(
mediaType = MediaType.APPLICATION_JSON,
schema = @Schema(implementation = NotFoundException.class))),
})
public Response getReport(@Parameter(
description = "",
required = true)
@PathParam("imageName") final String imageName,
@Parameter(description = "", required = true)
@PathParam("tag") final String tag,
@Parameter(description = "")
@PathParam("type") String type
) {
InputStream report = jenkinsClient.getReport(imageName, tag, type);
return Response.status(HttpURLConnection.HTTP_ACCEPTED).entity(report).build();
}
< /code>
jenkinsclient: < /p>
public InputStream getReport(final String imageName, final String tag, final String type) throws NotFoundException {
try {
final int lastSuccessfulBuildnumber = jenkinsClient.api().jobsApi().jobInfo(imageName, tag).lastSuccessfulBuild().number();
LOG.info("Last successful buildnumber: " + lastSuccessfulBuildnumber);
final InputStream report = jenkinsClient.api().jobsApi().artifact(imageName, tag, lastSuccessfulBuildnumber, Objects.equals(type, "image") ? "trivy_image_report.html" : "trivy_Dockerfile_report.html");
if (report == null) {
throw new NotFoundException("No dockerfile or image report found");
}
return report;
} catch (Exception e) {
throw new NotFoundException("No dockerfile or image scan report found");
}
}
< /code>
Я ожидал 404 с сообщением «Нет Dockerfile или отчет о сканировании изображений». Но я получил только 404 без сообщения, когда не нахожу артефакт. Я использовал "javax.ws.rs.notfoundexception" для notfoundexception.
Спасибо за помощь
Подробнее здесь: https://stackoverflow.com/questions/747 ... va-quarkus