From 1683ee02094261f0e4092ee1aaa0337fafb8b537 Mon Sep 17 00:00:00 2001 From: Mahad Janjua Date: Tue, 29 Jul 2025 11:06:51 -0700 Subject: [PATCH] [Java] Add API for testing downstream error code --- .../sampleapp/FrontendServiceController.java | 16 ++++++++++++++++ .../sampleapp/RemoteServiceController.java | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/sample-apps/java/springboot-main-service/src/main/java/com/amazon/sampleapp/FrontendServiceController.java b/sample-apps/java/springboot-main-service/src/main/java/com/amazon/sampleapp/FrontendServiceController.java index 7de449115..191138d48 100644 --- a/sample-apps/java/springboot-main-service/src/main/java/com/amazon/sampleapp/FrontendServiceController.java +++ b/sample-apps/java/springboot-main-service/src/main/java/com/amazon/sampleapp/FrontendServiceController.java @@ -38,7 +38,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Controller; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import software.amazon.awssdk.services.s3.S3Client; @@ -164,6 +166,20 @@ public String mysql() { return getXrayTraceId(); } +@GetMapping("/status/{code}") +@ResponseBody +public ResponseEntity status(@PathVariable int code, @RequestParam(name = "ip", defaultValue = "localhost") String ip) { + ip = ip.replace("/", ""); + try { + HttpGet request = new HttpGet("http://" + ip + ":8081/status/" + code); + httpClient.execute(request).close(); + } catch (Exception e) { + // Ignore exception + } + logger.info("Service A requested status code {} from Service B", code); + return ResponseEntity.ok(getXrayTraceId()); +} + // get x-ray trace id private String getXrayTraceId() { String traceId = Span.current().getSpanContext().getTraceId(); diff --git a/sample-apps/java/springboot-remote-service/src/main/java/com/amazon/sampleapp/RemoteServiceController.java b/sample-apps/java/springboot-remote-service/src/main/java/com/amazon/sampleapp/RemoteServiceController.java index cf71fbe4c..6373f0ed9 100644 --- a/sample-apps/java/springboot-remote-service/src/main/java/com/amazon/sampleapp/RemoteServiceController.java +++ b/sample-apps/java/springboot-remote-service/src/main/java/com/amazon/sampleapp/RemoteServiceController.java @@ -15,8 +15,10 @@ package com.amazon.sampleapp; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ResponseBody; @Controller @@ -27,4 +29,9 @@ public class RemoteServiceController { public String healthcheck() { return "Remote service healthcheck"; } + + @GetMapping("/status/{code}") + public ResponseEntity status(@PathVariable int code) { + return ResponseEntity.status(code).build(); + } }