2013-06-16 4 views
1

포매터를 따라 사용자 지정 메시지 컨버터를 사용하는 경우. 이것은 문자열 값을 객체에 바인딩 할 수있게 해주는 다른 방법으로 잘 작동 했으므로 매우 편리했습니다. XML로 설정했다 :NoSuchMessageException 나는 스프링 3.2 M1을 사용하고 내가 그들의 문자열 표현 (최대 절전 모드 매핑 실체 될 일이) POJO에 서식을 포맷터와 함께 일하는 3.</p> <p>최대 절전 모드있어

<mvc:annotation-driven conversion-service="conversionService" /> 

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 
    <property name="formatters"> 
     <set> 
      <bean class="aa.XFormatter" /> 
      <bean class="aa.YFormatter" /> 
      <bean class="bb.ZFormatter" /> 
     </set> 
    </property> 
    <property name="formatterRegistrars"> 
     <set> 
      <bean class="aa.DateFormatterRegistrar" /> 
     </set> 
    </property> 
</bean> 

모든 것이 잘 작동했다 I 최대 절전 POJO를 응답을 jsonifiying와 게으른 로딩 문제를 제거하는 (을-최대 절전 모드 잭슨 모듈 를 사용하여 HibernateAwareObjectMapper)를 사용자 지정 개체 매퍼를 추가하는 데 필요한 때까지 백 엔드에서. 위의 코드에 다음을 추가했습니다.

<mvc:annotation-driven conversion-service="conversionService"> 

    <mvc:message-converters> 
     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
      <property name="objectMapper"> 
       <bean class="cc.HibernateAwareObjectMapper"></bean> 
      </property> 
     </bean> 
    </mvc:message-converters> 

</mvc:annotation-driven> 

이렇게하면 지연로드 문제를 해결할 수 있습니다. (예에 대한 날짜 문자열을 바인딩 할 때) 포맷터를 호출 할 때 새로운 오류가 표면화 :

org.springframework.context.NoSuchMessageException: No message found under code 'fieldOfX.depended' for locale 'en_US'. 
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:161)... 

fieldOfX 완벽 전에 날짜/객체 표현의 문자열 표현에서 포맷 한 Date 형의 필드 인 사용자 정의 객체 매퍼를 추가합니다. 그리고 나는 에 의존한다는 것을 알고 싶어합니다.

나를 괴롭히는 또 다른 단점은 개체에서 문자열로 서식을 지정하는 것이 올바르게 작동하는 것입니다.

제 생각에 포맷터는 변환기입니다. 그리고 메시지 변환기는 종류의 변환기입니다. 그러나 나는 이것이 틀렸다는 것을 느끼기 시작했다.

그래서 내가 뭘하고/잘못 이해하고 있니? 어떤 도움도 환영합니다.

+0

질문에 직접 관련이 없습니다 - MILESTONE 릴리스 (비 안정)를 사용하고 계십니까? 가장 안정적인 3.2.3.RELEASE로 전환해야합니다. –

+0

M이 마일스톤을 의미한다고 설명해 주셔서 감사합니다. 업그레이드가 필요하다는 것을 알고 있었지만 비 안정적인 단어는 빠르게 처리해야합니다. – Mina

답변

0

모든 사용자의 시간을 낭비하게되어 죄송합니다. 안정 버전 3.2.2.RELEASE로 업그레이드하면 문제가 해결되었습니다.

고맙습니다. @Pavel Horal을 지적 해 주셔서 감사합니다.