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

노유수님의 프로필 이미지
노유수

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

다국어 처리를 위한 Internationalization 구현 방법

No message found under code 'greeting.message' for locale 'null'. 이랑 한글깨짐

작성

·

806

0

진짜 수업이랑 똑같이 따라갔는데

{
    "timestamp": "2022-11-30T22:35:23.776+00:00",
    "message": "No message found under code 'greeting.message' for locale 'null'.",
    "details": "uri=/hello-world-internationalized"
}

처음엔 이렇게 오류가 뜨길래 구글링해서

@Bean(name="messageSource")
public ResourceBundleMessageSource bundleMessageSource() {
	ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
	messageSource.setBasename("messages");
	return messageSource;
} 

이 빈 옵션을 추가하고 나니까 해결이 되었어요..

리소스번들이 문제였던거같은데

강의 영상에서는 properties파일들이

알아서 리소스 번들로 묶이던데

저는 ide를 vscode로 써서 그런가 그렇게 되지가 않아서 이런 오류가 뜬건가요,,?

혹시 위에 오류가 떴었던 이유를 알 수 있을까요,,? 이해가 안가서ㅠㅠ

그런데 wefewf.PNG프랑스어랑 영어는 헤더에서 value바꾸니까 정상적으로 작동했는데 안녕하세요만 깨져서 저렇게 나오네요..

한글이 다 저런가 싶어서 user예제에 아이디 1,2,3초기화 시켜둔 name을 한글로 바꿔봤는데 그건 또 안깨지고 잘 나오더라구요..

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

먼저, 메시지가 저당되어 있는 properties 파일 자체의 인코딩에 대한 문제일 수도 있습니다. IDE 툴에서 해당 파일을 생성하고 저장할 때, 인코딩이 맞지 않거나 기본으로 지정된 경우로 그냥 사용할 경우 등 JVM이 실행할 수 있는 환경에서의 인코딩이 잘못된 경우도 있지 않을 까 싶습니다. 가장 간단한 방법은 윈도우의 경우 메모장과 같은 파일에서 인코딩을 지정(이게 제일 간단할 거 같습니다)하여 저장하시고, 사용해 보시기 바랍니다.

두번째 질문은 message라는 객체를 찾지 못해서 생긴 문제인거 같은데, message 파일들이 저장된 경로를 Spring Context에서 인식하지 못해서 생긴 문제인거 같습니다. 올려 주신 코드는 직접 메시지가 저장되어 있는 위치와 베이스명 등을 지정하여 ResourceBundle 객체를 생성하였기 때문에, 문제의 오류가 사라지게 된 것 같습니다. 환경 설정 파일인 application 설정 파일에 아래와 같은 설정을 추가하셔도 됩니다.

image

추가 질문사항 있으시면 다시 글 올려 주세요.

감사합니다.

노유수님의 프로필 이미지
노유수

작성한 질문수

질문하기