隨筆-57  評(píng)論-117  文章-1  trackbacks-0

          異常信息如下:

          org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.Date' to required type 'java.sql.Timestamp' for property 'wfsj'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.util.Date] to required type [java.sql.Timestamp] for property 'wfsj': no matching editors or conversion strategy found
              at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:463)
              at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:494)
              at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1097)
              at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:882)
              at org.springframework.flex.core.io.SpringPropertyProxy.setValue(SpringPropertyProxy.java:182)
              at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:438)
              at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152)
              at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
              at flex.messaging.io.amf.Amf3Input.readArray(Amf3Input.java:358)
              …………
              at flex.messaging.io.amf.AmfMessageDeserializer.readObject(AmfMessageDeserializer.java:227)
              at flex.messaging.io.amf.AmfMessageDeserializer.readBody(AmfMessageDeserializer.java:206)
              at flex.messaging.io.amf.AmfMessageDeserializer.readMessage(AmfMessageDeserializer.java:126)
              at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:145)
              at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:291)
              at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$6f090fa2.service(<generated>)
              at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:109)
              …………
          Caused by: java.lang.IllegalStateException: Cannot convert value of type [java.util.Date] to required type [java.sql.Timestamp] for property 'wfsj': no matching editors or conversion strategy found
              at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:264)
              at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:448)
              ... 59 more

           

          看異常信息大概知道屬性wfsj這個(gè)字段,不能完成java.util.Date 到 java.sql.Timestamp 日期時(shí)間戳的轉(zhuǎn)換。后面還有提示, 沒有找到匹配的conversion或editor。

          conversion 在Spring中轉(zhuǎn)換對(duì)象屬性會(huì)用到,而editor和converter 以及formatter也是在轉(zhuǎn)換對(duì)象(String –> Date, String –> Timestamp),從字符串到對(duì)象,從對(duì)象到字符串的時(shí)候會(huì)經(jīng)常用到。

          解決方法:

          <bean id="customConfigProcessor" class="com.jp.tic.framework.flex.converter.CustomAmfConversionServiceConfigProcessor"/>
           
          <flex:message-broker services-config-path="/WEB-INF/flex/services-config.xml">
              <flex:exception-translator ref="flexExceptionTranslator" />
              <flex:config-processor ref="configProcessor"/>
              <flex:config-processor ref="customConfigProcessor"/>
              <!--<flex:message-interceptor ref="flexMessageInterceptor" />
              <flex:message-interceptor ref="loginMessageInterceptor" />-->
          </flex:message-broker>

          為message-broker對(duì)象注入CustomAmfConversionServiceConfigProcessor對(duì)象,CustomAmfConversionServiceConfigProcessor是繼承AbstractAmfConversionServiceConfigProcessor對(duì)象。

          AbstractAmfConversionServiceConfigProcessor對(duì)象中提供了對(duì)各個(gè)類型轉(zhuǎn)換serialization/deserialization的方法。

           

          package com.jp.tic.framework.flex.converter;
           
          import java.util.HashSet;
          import java.util.Set;
          import org.springframework.flex.core.io.AbstractAmfConversionServiceConfigProcessor;
           
          /**
           * <b>function:</b> 自定義AMF轉(zhuǎn)換服務(wù)
           * @author hoojo
           * @createDate 2013-7-17 下午01:35:12
           * @file CustomAmfConversionServiceConfigProcessor.java
           * @package com.jp.tic.framework.flex.converter
           * @project JTZHJK-Server
           * @blog http://blog.csdn.net/IBM_hoojo
           * @email hoojo_@126.com
           * @version 1.0
           */
          public class CustomAmfConversionServiceConfigProcessor extends AbstractAmfConversionServiceConfigProcessor {
           
              private static Set<Class<?>> classes = new HashSet<Class<?>>();
              
              @Override
              protected Set<Class<?>> findTypesToRegister() {
                  return classes;
              }
          }

           

          如果你還需要添加更多自己的轉(zhuǎn)化服務(wù),那么你需要給CustomAmfConversionServiceConfigProcessor 注入conversionService對(duì)象。

          <!-- 添加配置類型轉(zhuǎn)換器、轉(zhuǎn)換服務(wù) -->
              <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
                   <property name="converters">
                      <list>
                          <bean class="com.jp.tic.framework.mvc.convert.StringToTimestampConverter"/>
                          <bean class="com.jp.tic.framework.mvc.convert.DateToTimestampConverter"/>
                      </list>
                  </property>
                  
                  <property name="formatters">
                      <list>
                          <bean class="com.jp.tic.framework.mvc.formatter.SimpleDateTimeFormatAnnotationFormatterFactory"/>
                          <bean class="com.jp.tic.framework.mvc.formatter.TimestampFormatterFactory"/>
                      </list>
                  </property>
              </bean>

           

           

          <bean id="customConfigProcessor" class="com.jp.tic.framework.flex.converter.CustomAmfConversionServiceConfigProcessor">
              <property name="conversionService" ref="conversionService"/>
          </bean>


          作者:hoojo
          出處:
          blog:http://blog.csdn.net/IBM_hoojo
                   http://hoojo.cnblogs.com
          本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。


          版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處 本文出自:
          分享道版權(quán)所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處,謝謝
          主站蜘蛛池模板: 南川市| 景泰县| 昭通市| 大埔县| 太保市| 古蔺县| 成武县| 白朗县| 丹巴县| 金平| 运城市| 诸暨市| 苏州市| 瑞金市| 新巴尔虎左旗| 保康县| 湛江市| 仪陇县| 陇川县| 桂阳县| 宜阳县| 盖州市| 黎城县| 武山县| 祁阳县| 维西| 枝江市| 黑河市| 张家界市| 乐安县| 正定县| 广饶县| 凤翔县| 东丽区| 安仁县| 岳阳市| 普洱| 黄大仙区| 洛南县| 龙州县| 乐业县|