inflearn logo
강의

Course

Instructor

Spring MVC Part 1 - Core technologies for backend web development

postman으로 /request-body-json-v1 호출시 500 error

94

작성자 없음

0 asked

0

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

 

spring mvc

Answer 1

1

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 최지나님.

Postman으로 JSON 데이터를 전송할 때 500 에러가 발생하는 이유는 username 필드를 usernsme라고 오타가 난 상태로 요청을 보냈기 때문입니다. HelloData 클래스에 정의된 필드는 username이지만 전송하는 데이터의 필드명이 잘못 작성된 것을 확인할 수 있습니다.

해결 방법

  • JSON 필드명 수정: 아래와 같이 Postman 요청에서의 JSON 필드명을 올바르게 수정하시면 문제를 해결할 수 있습니다.
{
    "username": "aaa",
    "age": 20
}

추가 팁

  1. 오타 방지: JSON 데이터를 전송할 때에는 필드명을 정확히 확인하여 오타가 없도록 주의해야 합니다.
  2. 로그 확인: 서버 로그를 통해 에러 원인을 추적하면 많은 도움이 됩니다.
  3. 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