no_message_found_under_code_xxx_for_locale_ko

No message found under code 'XXX' for locale 'ko'

Spring 프레임워크 또는 전자정부프레임워크를 사용한 프로젝트를 톰캣에 배포하는경우에는 멀쩡히 잘 동작하지만 JBoss EAP / Wildfly 에 배포하면 아래와 같은 오류가 발생하면서 배포가 되지 않는 경우가 있다.

2020-02-21 11:18:16,696 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /WEB-INF/jsp/egovframework/com/cmm/EgovUnitTop.jsp: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: No message found under code 'comCmm.top.title' for locale 'ko'.

Caused by: javax.servlet.jsp.JspTagException: No message found under code 'comCmm.top.title' for locale 'ko'.

이것은 해당 프레임워크에 있는 국제화 Message 기능이 정상동작하지 않아서 발생하는 문제입니다.
설정파일 내용을 보면 아래와 같습니다.

  • /WEB-INF/classes/egovframework/spring/com/context-common.xml
        <!-- 국제화 Message 설정 -->
        <bean id="messageSource" class="egovframework.com.cmm.util.EgovWildcardReloadableResourceBundleMessageSource">
                <property name="egovBasenames">
                        <list>
                                <value>classpath*:egovframework/message/com/**/*</value>
                                <value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
                                <value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
                                <value>classpath:/egovframework/egovProps/globals</value>
                        </list>
                </property>

                <property name="cacheSeconds">
                        <value>60</value>
                </property>
        </bean>

전자정부프레임워크의 xml파일 설정내용을 보면 위와같이 되어있는데 이부분을 수정하여야 합니다.
일단 수정하기 전에 프로젝트소스 내에서 메세지 관련 property 파일들의 위치를 확인합니다.

[root@test7 WEB-INF]# find ./ -name "*.properties"
./classes/egovframework/message/com/uat/uia/message_ko.properties
./classes/egovframework/message/com/uat/uia/message_en.properties
./classes/egovframework/message/com/uat/uap/message_en.properties
./classes/egovframework/message/com/uat/uap/message_ko.properties
./classes/egovframework/message/com/sec/ram/message_en.properties
./classes/egovframework/message/com/sec/ram/message_ko.properties
./classes/egovframework/message/com/cmm/err/message-common_ko.properties
./classes/egovframework/message/com/cmm/err/message-common_en.properties
./classes/egovframework/message/com/cmm/message-common_ko.properties
./classes/egovframework/message/com/cmm/message-common_en.properties
./classes/egovframework/message/com/message-common_en.properties
./classes/egovframework/message/com/message-common_ko.properties

이와 같이 메세지 관련 property 파일의 위치를 확인하면 해당 경로를 모두 등록해줘야 합니다.

        <bean id="messageSource" class="egovframework.com.cmm.util.EgovWildcardReloadableResourceBundleMessageSource">
                <property name="egovBasenames">
                        <list>
                                <value>classpath*:egovframework/message/com/**/*</value>
                                <value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
                                <value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
                                <value>classpath:/egovframework/egovProps/globals</value>
                                <!-- 확인된 모든 경로를 추가해준다 -->
                                <value>classpath:/egovframework/message/com/message-common</value>
                                <value>classpath:/egovframework/message/com/cmm/message-common</value>
                                <value>classpath:/egovframework/message/com/cmm/err/message-common</value>
                                <value>classpath:/egovframework/message/com/sec/ram/message</value>
                                <value>classpath:/egovframework/message/com/uat/uap/message</value>
                                <value>classpath:/egovframework/message/com/uat/uia/message</value>
                        </list>
                </property>
                 
                <property name="cacheSeconds">
                        <value>60</value>
                </property>
        </bean>

아마도 원인은 classpath*:egovframework/message/com/**/* 부분이 와일드카드로 모두 읽어들이지 못하는 문제가 있는것으로 보인다.

로그인하면 댓글을 남길 수 있습니다.
  • no_message_found_under_code_xxx_for_locale_ko.txt
  • 마지막으로 수정됨: 2020/06/12 11:17
  • 저자 admin