HotArticleApiTest 오류
package kuke.board.hotarticle.api;
import kuke.board.hotarticle.service.response.HotArticleResponse;
import org.junit.jupiter.api.Test;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.web.client.RestClient;
import java.util.List;
public class HotArticleApiTest {
RestClient restClient = RestClient.create("http://localhost:9004");
@Test
void readAllTest() {
List<HotArticleResponse> responses = restClient.get()
.uri("/v1/hot-articles/articles/date/{dateStr}", "20250225")
.retrieve()
.body(new ParameterizedTypeReference<List<HotArticleResponse>>() {
});
for (HotArticleResponse response : responses) {
System.out.println("response = " + response);
}
}
}섹션 6 인기글 Producer&Consumer 테스트
테스트 코드 실행 오류가 발생합니다.
2025-02-25T14:24:03.178+09:00 INFO 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2025-02-25T14:24:03.178+09:00 INFO 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms
2025-02-25T14:24:03.191+09:00 WARN 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingPathVariableException: Required URI template variable 'dataStr' for method parameter type String is not present]org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-02-25T05:24:03.195+00:00","status":500,"error":"Internal Server Error","path":"/v1/hot-articles/articles/date/20250225"}"
다른 질문글에서 언급한 500에러 해결책을 참고해봤지만 소용이 없네요.
코드를 점검해봐도 잘못 작성한게 없어보입니다.
기초 선수지식이 없는 상태에서 클론코딩을 하다보니 어디를 어떻게 더 점검해야할지 모르겠는데 제시 해주신다면 찾아서 해결해보려고 합니다. 어떻게 해야할까요?
답변 2
0
theplayer1003님, 안녕하세요!
일단 테스트 코드에서 500 에러 받는건, 클라이언트 입장에서의 로그라 제대로 남지 않습니다.
그래서 서버 애플리케이션에서의 로그를 보면서 직접 디버깅해봐야 합니다!
디버깅 도구를 써도 좋고, 아니면 그냥 저도 프린트문 직접 찍어보면서 찾아보기도 하네요!
api는 정상 호출하는지, 어디에서 예외가 발생하는지, 스택트레이스 흐름을 천천히 따라가보시면 좋습니다!
로그 올려주신 것 보니 "dataStr" 이라는 문구가 보이고,
MissingPathVariableException 예외를 보니 path variable이 없다고 하네요!
로그에 정답이 있어서, 남은 부분은 직접 찾아보시면 좋을 것 같네요!
혹시 찾기 어려우시면 다시 말씀 해주세요!
0
안녕하세요, 인프런 AI 인턴입니다. theplayer1003님.
스프링 부트 애플리케이션에서 테스트 코드 실행 시 발생하는 500 Internal Server Error 문제에 대해 다루어 보겠습니다. 오류 메시지를 보니, MissingPathVariableException이 발생하고 있으며, 이는 URI 템플릿에서 요구하는 경로 변수가 메소드 인자에서 제공되지 않았기 때문일 가능성이 큽니다.
문제 해결 접근 방법
경로 변수 확인:
- 오류 메시지에
Required URI template variable 'dataStr'가 언급된 것을 보면, 해당 URI 경로에서 경로 변수로 설정해야 할 변수가 제대로 전달되지 않은 것으로 보입니다. 테스트 코드의 URI는/v1/hot-articles/articles/date/{dateStr}인데,dateStr를{dateStr}로 인식해야 하는데{dataStr}로 잘못 참조하고 있는 것 같습니다. 코드에서{dateStr}부분을 확인하고 정확한 변수 명을 사용했는지 체크해보세요.
- 오류 메시지에
API 핸들러 검토:
- 서버 쪽에서 해당 엔드포인트를 처리하는 컨트롤러 메소드(Signature)를 다시 확인해주세요. 해당 메소드가
@PathVariable("dateStr")과 같이 정확히 변수명을 일치시키고 있어야 합니다. 이를 통해 올바른 경로 변수를 받을 수 있게 됩니다.
- 서버 쪽에서 해당 엔드포인트를 처리하는 컨트롤러 메소드(Signature)를 다시 확인해주세요. 해당 메소드가
서버 로깅 활성화:
- 문제가 발생할 때 더 나은 디버깅을 위해 로그 설정을 INFO 이상으로 활성화하여 더 많은 정보를 획득하세요. 이는 문제 해결에 큰 도움이 될 수 있습니다.
- 문제가 발생할 때 더 나은 디버깅을 위해 로그 설정을 INFO 이상으로 활성화하여 더 많은 정보를 획득하세요. 이는 문제 해결에 큰 도움이 될 수 있습니다.
관련하여 유사한 문제를 토의하는 인프런 게시물을 살펴볼 수 있습니다:
위의 내용을 바탕으로 설정과 코드 내의 경로 변수를 적절히 체크해보시기 바랍니다. 만약 여전히 500 오류가 계속된다면, 오류 메시지와 코드의 전체 흐름을 기반으로 더 깊이 있는 디버깅 작업을 진행해야 할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
0
31
1
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
49
2
게시글 테스트 데이터 삽입
0
51
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
104
2
좋아요 기능 정합성 보장 방법
0
98
2
좋아요 동시성처리 최적의 선택?
1
138
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
92
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
61
1
조회수 조회 로직 질문
1
67
2
비로그인 유저도 어뷰징 방지 정책
1
73
2
CommentServiceTest의 테스트 로직 질문
0
54
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
74
2
path 쿼리 관련 질문드립니다!
0
60
2
antigravity 에디터를 쓰신다면 종료해주세요
1
123
0
프로젝트 구조
0
88
2
article_like_count api test
0
79
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
104
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
92
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
94
3
jpa ddl-auto none을 하는 이유와 join 방법
0
97
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
91
2
커서 기반 페이지네이션 과 무한 스크롤링
0
111
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
97
2
멀티 모듈이 아닌 MSA 환경에서 common
0
158
2





