BlazeDS:Unknown AMF type '17'

现象:BlazeDS 出现错误如下

[BlazeDS]20:49:33.520 [ERROR] Unknown AMF type '17'.
flex.messaging.io.UnknownTypeException: Unknown AMF type '17'.
        at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:217)
        at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
        at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)
        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.Amf3Input.readObjectValue(Amf3Input.java:156)
        at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
        at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)
        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.Amf0Input.readObjectValue(Amf0Input.java:123)
        at flex.messaging.io.amf.Amf0Input.readArrayValue(Amf0Input.java:359)
        at flex.messaging.io.amf.Amf0Input.readObjectValue(Amf0Input.java:127)
        at flex.messaging.io.amf.Amf0Input.readObject(Amf0Input.java:94)
        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.MessageBrokerServlet.service(MessageBrokerServlet.java:353)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:662)

原因: 从ActionScript方传输Java方的数据里面含有BlazeDS无法转换的数据类型, 如AS的Dictionary 无法转换为Java数据, 但java的Dictionary则可以转换为AS的Object.


解决: 用可转换的数据类型替换掉吧无法转换的数据类型. 参考: http://blog.csdn.net/haha0832/article/details/5781106

你可能感兴趣的:(BlazeDS:Unknown AMF type '17')