message 관련 에러가 발생합니다.
- 작성자 :
- 김*현
- 작성일 :
- 2012-03-07 15:54:29
- 조회수 :
- 3,815
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
No message found under code 'test.common.msg' for locale 'ko_KR'.
위 에러가 발생합니다.
message-common_ko_KR.properties
test.common.msg0=메세지 테스트 입니다!!
test.common.msg=message {0} {1} == 파라미터 메세지 테스트 입니다.
위처럼 구성되어있고
컨트롤러에서 호출시
egovMessageSource.getMessage("test.common.msg0")
위에꺼는 에러 없이 잘되는데..
Object[] parameter = { new String("1") , new Integer(2) };
egovMessageSource.getMessage( "test.common.msg" , parameter , java.util.Locale.getDefault() )
위 처럼 파라 미터를 주면
No message found under code 'test.common.msg' for locale 'ko_KR'.
에러가 발생합니다 ...
----- 에러 로그 --------------------------------
org.springframework.context.NoSuchMessageException: No message found under code 'test.common.msg' for locale 'ko_KR'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:135)
at ajc.ucm.controller.pilot.SampleTestController.getMessageSample(SampleTestController.java:417)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
-----------------------------------------------
도움 부탁드립니다.
그리고 jsp에서 <spring:message code="test.common.msg" />
이런식으로 호출 할 경우 파라미터는 어떻게 넘길수 있는지요?
또, 메세지를 서버 기동중에 추가하면 서버가 무조건 재시작 되던데..
운영중에 동적으로 메세지를 수정해도 서버재시작 없이 바로 적용되게 할수 있나요?
할수있다면 방법좀 부탁드립니다.
위 에러가 발생합니다.
message-common_ko_KR.properties
test.common.msg0=메세지 테스트 입니다!!
test.common.msg=message {0} {1} == 파라미터 메세지 테스트 입니다.
위처럼 구성되어있고
컨트롤러에서 호출시
egovMessageSource.getMessage("test.common.msg0")
위에꺼는 에러 없이 잘되는데..
Object[] parameter = { new String("1") , new Integer(2) };
egovMessageSource.getMessage( "test.common.msg" , parameter , java.util.Locale.getDefault() )
위 처럼 파라 미터를 주면
No message found under code 'test.common.msg' for locale 'ko_KR'.
에러가 발생합니다 ...
----- 에러 로그 --------------------------------
org.springframework.context.NoSuchMessageException: No message found under code 'test.common.msg' for locale 'ko_KR'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:135)
at ajc.ucm.controller.pilot.SampleTestController.getMessageSample(SampleTestController.java:417)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
-----------------------------------------------
도움 부탁드립니다.
그리고 jsp에서 <spring:message code="test.common.msg" />
이런식으로 호출 할 경우 파라미터는 어떻게 넘길수 있는지요?
또, 메세지를 서버 기동중에 추가하면 서버가 무조건 재시작 되던데..
운영중에 동적으로 메세지를 수정해도 서버재시작 없이 바로 적용되게 할수 있나요?
할수있다면 방법좀 부탁드립니다.
A
안녕하세요.. 김명현님..
메시지 중간에 "="가 포함되어 있어서.. 실제 key 값이 "test.common.msg=message {0} {1} ="로 정의된 상태 같습니다..
다음과 같이 변경하시면 되실 것 같습니다.
test.common.msg=message {0} {1} \=\= 파라미터 메세지 테스트 입니다.
message tag에서는 파라미터는 다음과 같이 처리하시면 됩니다.
<spring:message code="test.common.msg">
<spring:messageArgument value="bar"/>
<spring:messageArgument code="fooBar"/>
</spring:message>
마지막으로.. reload 처리를 하시려면.. 다음과 같이 처리하시면 됩니다. (reload되는 시간을 지정)
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/egovframework/message/message-common</value>
<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
<value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
그럼.. 즐거운 하루되십시오.
감사합니다.
메시지 중간에 "="가 포함되어 있어서.. 실제 key 값이 "test.common.msg=message {0} {1} ="로 정의된 상태 같습니다..
다음과 같이 변경하시면 되실 것 같습니다.
test.common.msg=message {0} {1} \=\= 파라미터 메세지 테스트 입니다.
message tag에서는 파라미터는 다음과 같이 처리하시면 됩니다.
<spring:message code="test.common.msg">
<spring:messageArgument value="bar"/>
<spring:messageArgument code="fooBar"/>
</spring:message>
마지막으로.. reload 처리를 하시려면.. 다음과 같이 처리하시면 됩니다. (reload되는 시간을 지정)
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:/egovframework/message/message-common</value>
<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
<value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
</list>
</property>
<property name="cacheSeconds">
<value>60</value>
</property>
</bean>
그럼.. 즐거운 하루되십시오.
감사합니다.