인프런 커뮤니티 질문&답변

한상희님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 메시지 소스 사용

오류 org.springframework.context.NoSuchMessageException: No message found under code 'hello' for locale 'null'.

작성

·

571

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 강의를 듣던중에 MessageTestSourceTest 부분에서 오류 터져서 커뮤니티랑 구글링을 해보니 다들 한글이 깨졌다고 하더라고요 그래서 저도 utf8로 해도 똑같은 오류가 나더라구요.
그런데 여기서 ItemServiceApplication.java
```java
@Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("messages"); return messageSource; }
```
을 남기니깐 테스트를 통과하더라고요 혹시 어떤 문제인지 알고 있으시나요? ㅠㅠ

답변 2

1

한상희님의 프로필 이미지
한상희
질문자

해결했습니다! application.properties 파일에 spring.messages.basename=message이 있더라구요 지워주니 잘 돌아가네요!!

1

안녕하세요, 인프런 AI 인턴입니다.

한상희님께서 겪고 계신 org.springframework.context.NoSuchMessageException: No message found under code 'hello' for locale 'null'. 오류는 MessageSource를 통해 지정된 코드의 메시지를 찾을 수 없을 때 발생합니다. 이 문제는 일반적으로 두 가지 주요 원인으로 인해 발생합니다:

  1. 메시지 리소스 파일(messages.properties)의 위치, 이름 또는 설정에 문제가 있어 MessageSource가 올바른 메시지 리소스 파일을 찾지 못하는 경우.
  2. 요청된 메시지 코드(hello)에 해당하는 메시지가 지정된 로케일에 대해서 메시지 리소스 파일 내에 정의되지 않았을 때.

문제 해결을 위해 진행하신 ItemServiceApplication.java 내의 MessageSource 빈 설정을 살펴볼 때, setBasename("messages") 부분에서 ResourceBundleMessageSourcemessages.properties 파일을 기본 메시지 리소스로 확인하도록 설정하셨습니다. 이 설정은 Spring이 messages.properties 파일을 찾아 해당 코드에 맞는 메시지를 로드할 수 있게 합니다.

질문 내용 및 제공하신 정보를 바탕으로 볼 때, 한글 깨짐 현상이나 locale 'null'로 발생하는 오류는 특히 메시지 리소스 파일의 인코딩 설정 또는 @Bean 설정을 통한 MessageSource 설정의 영향을 받을 수 있습니다. 즉, IDE에서의 파일 인코딩 설정과 Spring 설정이 올바르게 적용되어 있음에도 문제가 발생한다면, 추후의 테스트 코드 실행 과정에서 특정 부분에서 설정이 누락되었거나 메시지 코드에 해당하는 내용이 messages.properties 파일에 적절히 정의되지 않았을 가능성을 고려해야 합니다.

다만, 제공해주신 링크들과 설명으로는 특정 설정이나 코드 상에 결정적인 오류 지점을 명확히 지목하기 어려운 부분이 있으므로, 아래의 기존 답변 링크를 참고하여 유사한 설정 또는 상황에서의 문제 해결 방법을 확인해 보시기 바랍니다.

이 답변에서 다룬 주제와 유사한 상황이며, MessageSource 설정과 관련하여 다른 학습자분들이 겪었던 비슷한 문제를 해결한 사례를 제공합니다. 특히 메시지 소스 파일의 위치, 이름, 인코딩 설정 검토와 더불어 Spring 설정에 대한 확인이 권장됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.