postman으로 /request-body-json-v1 호출시 500 error
94
작성자 없음
0 asked
Json형태의 request 에서 아래 예제 그대로 진행했는데, 자꾸 500 error가 나와서요
java 24, springboot 2.5.5
@Slf4j
@Controller
public class RequestBodyJsonController {
private ObjectMapper objectMapper = new ObjectMapper();
@PostMapping("/request-body-json-v1")
public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
log.info("messageBody={}", messageBody);
HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
log.info("username={}, age={}", helloData.getUsername(), helloData.getAge());
response.getWriter().write("ok");
}
}
[postman] 수행결과
{
"timestamp": "2025-08-24T05:03:39.632+00:00",
"status": 500,
"error": "Internal Server Error",
"path": "/request-body-json-v1"
}
[인텔리제이 로그]
2025-08-24T14:03:39.540+09:00 INFO 6552 --- [springmvc] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2025-08-24T14:03:39.541+09:00 INFO 6552 --- [springmvc] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms
2025-08-24T14:03:39.570+09:00 INFO 6552 --- [springmvc] [nio-8080-exec-1] h.s.b.request.RequestBodyJsonController : messageBody={"usernsme":"aaa", "age":20}
2025-08-24T14:03:39.620+09:00 ERROR 6552 --- [springmvc] [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "usernsme" (class hello.springmvc.basic.HelloData), not marked as ignorable (2 known properties: "username", "age"])
at [Source: REDACTED StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1, column: 14] (through reference chain: hello.springmvc.basic.HelloData["usernsme"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) ~[jackson-databind-2.19.2.jar:2.19.2]
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1180) ~[jackson-databind-2.19.2.jar:2.19.2]
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2244) ~[jackson-databind-2.19.2.jar:2.19.2]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1823) ~[jackson-databind-2.19.2.jar:2.19.2]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1801) ~[jackson-databind-2.19.2.jar:2.19.2]
at
Answer 1
1
안녕하세요, 인프런 AI 인턴입니다. 최지나님.
Postman으로 JSON 데이터를 전송할 때 500 에러가 발생하는 이유는 username 필드를 usernsme라고 오타가 난 상태로 요청을 보냈기 때문입니다. HelloData 클래스에 정의된 필드는 username이지만 전송하는 데이터의 필드명이 잘못 작성된 것을 확인할 수 있습니다.
해결 방법
- JSON 필드명 수정: 아래와 같이 Postman 요청에서의 JSON 필드명을 올바르게 수정하시면 문제를 해결할 수 있습니다.
{
"username": "aaa",
"age": 20
}
추가 팁
- 오타 방지: JSON 데이터를 전송할 때에는 필드명을 정확히 확인하여 오타가 없도록 주의해야 합니다.
- 로그 확인: 서버 로그를 통해 에러 원인을 추적하면 많은 도움이 됩니다.
- Jackson 문제: Jackson 라이브러리는 매핑되지 않은 속성을 계속해서 디시리얼라이즈 하려 할 경우 예외를 발생시킵니다. 설정을 통해
lenient모드로 전환하거나, Fallback으로 Unknown Property를 무시하도록 설정할 수 있습니다. 적절한 예외 처리를 추가하면 디버깅에 도움이 됩니다.
자세한 Jackson 활용에 대한 내용이 추가로 궁금하시다면 Jackson의 UnrecognizedPropertyException 관련 질의를 참고할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
servlet과 container에 대한 질문입니다
0
18
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
60
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
93
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
174
1
수업 코드 제공 관련 문의
0
96
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
76
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
136
1
html 변경하는 부분 적용 문제
0
99
1
한글 깨짐
0
75
2
메서드 추출에 대해서 궁금한게 있습니다
0
65
1

