- 浏览: 939991 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (242)
- Flex (38)
- Java (15)
- iBatis (4)
- Spring (15)
- Oracle (4)
- Cognos (4)
- ActionScript (17)
- AIR (14)
- Box2D (1)
- Windows8 (3)
- AIR Mobile (4)
- Quartz (6)
- mybatis (7)
- CGLIB (1)
- Mobile (9)
- BlazeDS (3)
- IOS (8)
- FlashBuilder (1)
- Scout (1)
- Starling (5)
- APNS (3)
- Chrome (3)
- Windows (2)
- MySQL (15)
- Feathers (1)
- Tomcat (5)
- JavaPNS (1)
- SVN (2)
- XAMPP (1)
- Drupal (1)
- Linux (2)
- VSFTPD (1)
- jQuery (5)
- Discuz (2)
- Word (1)
- PHP (1)
- OFFICE (2)
- javascript (15)
- 微信 (1)
- 博客 (1)
- jquery mobile (5)
- nginx (1)
- memcached (1)
- maven (3)
- log4j (2)
- GitHub (2)
- html5 (3)
- WebSocket (2)
- Mac (11)
- Apache (1)
- JUnit (1)
- Eclipse (1)
- Openfire (1)
- HLS (1)
- Swift (6)
- Excel (2)
- IDE (4)
- NodeJS (8)
- 树莓 (3)
- CSS (2)
- PhoneGap (1)
- Angular.js (5)
- bootstrap (1)
- angular (5)
- React (1)
- Browserify (1)
- Ruby (1)
- WebService (1)
- CXF (1)
- redis (2)
- Dubbo (1)
- Jedis (1)
- solr (1)
- yeoman (1)
- grunt (1)
- bower (1)
- gulp (3)
- Git (2)
- angularJS (4)
- fastjson (1)
- Spring-Boot (1)
- Vue (1)
- Motan (1)
- Python (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
NodeJS使用ipp协议打印 -
小“味”子:
不错不错,试了,是可以的
Mac下连接SQL Server客户端 -
akka_li:
我遇到这个问题了!我的原因是配置文件里写得各个包的xsd文件的 ...
Referenced file contains errors (http://www.springframework.org/schema...错误 -
迪伦少校:
我只想知道,你最后配置成功了吗?我这里怎么tomcat总是死呢 ...
关于 Nginx+Tomcat+Memcached做负载均衡加共享session -
LiYunpeng:
jun23100 写道我也遇到这个问题了,环境都是正确的,怎么 ...
关于HTML5请求WebSocket,404的问题
关于在ActionScript项目中,使用RemoteObject的时候遇到的如下Exception
[WARN ] [2013-01-04 22:41:26] org.springframework.flex.core.DefaultExceptionLogger The following exception occurred during request processing by the BlazeDS MessageBroker and will be serialized back to the client:
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1373)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:1005)
at flex.messaging.endpoints.AbstractEndpoint$$FastClassByCGLIB$$1a3ef066.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.flex.core.MessageInterceptionAdvice.invoke(MessageInterceptionAdvice.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$FixedChainStaticTargetInterceptor.intercept(Cglib2AopProxy.java:573)
at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$8f3a8faa.serviceMessage(<generated>)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:103)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:166)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:291)
at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$8f3a8faa.service(<generated>)
at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:109)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
在ActionScript端,Error
TypeError: Error #1034: Type Coercion failed: cannot convert Object@5425371 to mx.messaging.messages.ErrorMessage.
再无其他任何错误信息
解决办法:在要执行RemoteObject的远程方法之前,注册下在BlazeDS通信时需要用到的通信类,即,添加如下语句
RpcClassAliasInitializer.registerClassAliases();
-------------------------------------
分析
看后台的错误日志,可以分析出,是对于BlazeDS内部的报错,而又是空指针错误,说明是
有些对象没有成功被实例化
再通过前端的错误信息分析,是转换对象的类型失败。
而对于Flex项目来说,就可以直接使用RemoteObject,无论是标签的方式还是AS代码的方式。
那么写法都一样的情况下,其实Flex工程是多了一个initilization的步骤,也就是说,对于ActionScript中的相应通信类,没有成功的转换成BlazeDS中的类。
加的这条语句在以前博客里也写过类似的,就是手动注册需要AS和Java相对应的类
registerClassAliases的源码里注册了如下
// Flex classes
registerClassAlias("flex.messaging.io.ArrayCollection", ArrayCollection);
registerClassAlias("flex.messaging.io.ArrayList", ArrayList);
registerClassAlias("flex.messaging.io.ObjectProxy", ObjectProxy);
// rpc classes
registerClassAlias("flex.messaging.messages.AcknowledgeMessage", AcknowledgeMessage);
registerClassAlias("DSK", AcknowledgeMessageExt);
registerClassAlias("flex.messaging.messages.AsyncMessage", AsyncMessage);
registerClassAlias("DSA", AsyncMessageExt);
registerClassAlias("flex.messaging.messages.CommandMessage", CommandMessage);
registerClassAlias("DSC", CommandMessageExt);
registerClassAlias("flex.messaging.config.ConfigMap", ConfigMap);
registerClassAlias("flex.messaging.messages.ErrorMessage", ErrorMessage);
registerClassAlias("flex.messaging.messages.HTTPMessage", HTTPRequestMessage);
registerClassAlias("flex.messaging.messages.MessagePerformanceInfo", MessagePerformanceInfo);
registerClassAlias("flex.messaging.messages.RemotingMessage", RemotingMessage);
registerClassAlias("flex.messaging.messages.SOAPMessage", SOAPMessage);
[WARN ] [2013-01-04 22:41:26] org.springframework.flex.core.DefaultExceptionLogger The following exception occurred during request processing by the BlazeDS MessageBroker and will be serialized back to the client:
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1373)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:1005)
at flex.messaging.endpoints.AbstractEndpoint$$FastClassByCGLIB$$1a3ef066.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.flex.core.MessageInterceptionAdvice.invoke(MessageInterceptionAdvice.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.adapter.ThrowsAdviceInterceptor.invoke(ThrowsAdviceInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$FixedChainStaticTargetInterceptor.intercept(Cglib2AopProxy.java:573)
at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$8f3a8faa.serviceMessage(<generated>)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:103)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:166)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:291)
at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$8f3a8faa.service(<generated>)
at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:109)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
在ActionScript端,Error
TypeError: Error #1034: Type Coercion failed: cannot convert Object@5425371 to mx.messaging.messages.ErrorMessage.
再无其他任何错误信息
解决办法:在要执行RemoteObject的远程方法之前,注册下在BlazeDS通信时需要用到的通信类,即,添加如下语句
RpcClassAliasInitializer.registerClassAliases();
-------------------------------------
分析
看后台的错误日志,可以分析出,是对于BlazeDS内部的报错,而又是空指针错误,说明是
有些对象没有成功被实例化
再通过前端的错误信息分析,是转换对象的类型失败。
而对于Flex项目来说,就可以直接使用RemoteObject,无论是标签的方式还是AS代码的方式。
那么写法都一样的情况下,其实Flex工程是多了一个initilization的步骤,也就是说,对于ActionScript中的相应通信类,没有成功的转换成BlazeDS中的类。
加的这条语句在以前博客里也写过类似的,就是手动注册需要AS和Java相对应的类
registerClassAliases的源码里注册了如下
// Flex classes
registerClassAlias("flex.messaging.io.ArrayCollection", ArrayCollection);
registerClassAlias("flex.messaging.io.ArrayList", ArrayList);
registerClassAlias("flex.messaging.io.ObjectProxy", ObjectProxy);
// rpc classes
registerClassAlias("flex.messaging.messages.AcknowledgeMessage", AcknowledgeMessage);
registerClassAlias("DSK", AcknowledgeMessageExt);
registerClassAlias("flex.messaging.messages.AsyncMessage", AsyncMessage);
registerClassAlias("DSA", AsyncMessageExt);
registerClassAlias("flex.messaging.messages.CommandMessage", CommandMessage);
registerClassAlias("DSC", CommandMessageExt);
registerClassAlias("flex.messaging.config.ConfigMap", ConfigMap);
registerClassAlias("flex.messaging.messages.ErrorMessage", ErrorMessage);
registerClassAlias("flex.messaging.messages.HTTPMessage", HTTPRequestMessage);
registerClassAlias("flex.messaging.messages.MessagePerformanceInfo", MessagePerformanceInfo);
registerClassAlias("flex.messaging.messages.RemotingMessage", RemotingMessage);
registerClassAlias("flex.messaging.messages.SOAPMessage", SOAPMessage);
发表评论
-
关于AIR资源文件打包不到bin-debug里面的原因可能
2013-03-18 16:02 1655此问题也适用于Flex 首先说明我的状况 在使用外部加载资源 ... -
Starling中MovieClip倒序,反向播放
2013-01-28 12:39 1674关于Starling中的MovieClip反向、倒序播放实现 ... -
Starling-Feathers中设置单个组件对象的样式
2013-01-21 21:00 1444关于基于Starling的Feathers组件库,版本号比较小 ... -
使用Spring BlazeDS出现Error creating bean with name '_messageBroker': Invocation***
2013-01-19 22:03 10208我这里的情况其实是在写Junit的时候出现的这个错误,但是应该 ... -
关于air for IOS和JavaPNS实现数据推送服务的步骤记录
2013-01-05 21:20 3497看过了很多博客和相关的说明介绍 总结出一个结论:就是Java ... -
关于AIR for IOS开发时,推送服务的证书(***.cer)使用
2013-01-04 16:04 1588Adobe 官方的帮助文档其实有了Demo和依次的步骤 地址如 ... -
关于Class flash.notifications::RemoteNotifierSubscribeOptions could not be found.
2013-01-04 11:51 1507关于在ActionScript 的Mobile移动项目中,使用 ... -
关于Starling的交互响应
2012-12-24 19:11 1323对于Starling的交互 已经不能使用MouseDown、 ... -
关于Flex初始化时访问的stage为null的问题
2012-12-19 22:09 1783在使用Flex编写AIR程序的时候 访问this.stage ... -
关于Adobe Scout查看信息中的"Decompressing images"解压缩图片
2012-12-19 17:47 1305在使用Adobe Scout的时候,查看具体的执行处理日志信息 ... -
关于Tweenlite的一些使用参数
2012-12-10 10:34 1562在网上找了很多关于Tweenlite的讲解和说明,但是在实际应 ... -
在IOS设备上调试AIR出现Installation Error: ApplicationVerificationFailed.
2012-12-05 17:43 3156具体原因不明~ clean 了工程就好了 -
Flex Mobile移动开发通过BlazeDS与服务器通信遇到的链接频道失败问题
2012-11-29 23:33 2056producer channel faulted with C ... -
Flex Mobile移动开发报类似错误E:\dev\4.y\frameworks\projects\framework\src\mx\managers
2012-11-07 11:00 1116类似错误 看起来很莫名其妙,居然有个绝对路径的信息,但是 ... -
Flash Player 11和AIR 3的十个重要特性
2011-07-14 09:53 1177引用http://www.bytearray.org/?p=3 ...
相关推荐
flex中actionscript动态调用remoteobject类,很简单的一个例子,后面可以扩充,动态调用java的方法,可在java方法中放个switch,返回不同的结果集
actionscript3.0开发的进度显示条项目
ActionScript 3.0 语言和组件参考概述Adobe Flex 2 语言参考ActionScript 3.0 语言和...本参考适合与其它指导性媒体(如《ActionScript 3.0 编程》指南)和 Adobe 网站上的资源(如 ActionScript 主题中心)结合使用。
ActionScript 3.0里使用单例模式 ActionScript 3.0里使用单例模式
用actionscript3.0开发的一个 游戏背包项目,使用MVC模式设计,欢迎大家下载学习
ActionScript语句中文全解
ActionScript 3.0 CookBook 中文翻译 ActionScript 3.0 flash+flex
ActionScript3中文手册
本手册提供了 ActionScript 语言中所支持元素的语法和用法信息。 其中包括以下部分: 下面的 《ActionScript 3.0 语言和组件参考》是 Flash® Player 和 Adobe® AIR™ 应用程序编程接口 (API) 的参考手册。 语言...
ActionScript3.0 枚举类型的使用 ActionScript3.0 中创建枚举类型
本书讨论了在Flash Player里执行的ActionScript 3.0语言,采用问题—解法—讨论的形式讲解开发过程中常见问题的实际解法,例如:检测用户的 Flash Player 版本或操作系统;格式化日期和货币类型;接受用户输入及操作...
ActionScript3中文教程,详细介绍了用 FLASH CS3开发应用程序。
一个关于用ActionScript3.0的图片3D旋转代码!
内含actionscript3.0中文教程和ActionScript 3.0中文api
使用 ActionScript 3.0 组件 编程 学习FLASH BUILDER RIA 必不可少
Adobe Flash 中的 ActionScript 2
摘 要:F1ash做为目前最流行...本文就F1ash中Acti0nscript语言的发展及其各个阶段的特征和区别做了详细介 绍,希望对学习F1ash高级编程的用户有所帮助。 关键词:Flash;ActionScript;.~维动画;脚本;类;事件机制
■ 一个新增的 ActionScript 虚拟机,称为 AVM2,它使用全新的字节码指令集,可使性能 显著提高 ■ 一个更为先进的编译器代码库,它更为严格地遵循 ECMAScript (ECMA 262) 标准, 并且相对于早期的编译器版本,可...
ActionScript 3.0 Cookbook中文
Flash使用ActionScript给动画添加交互性。在简单动画中,Flash按顺序播放动画中的场景和帧,而在交互...使用ActionScript可以控制Flash动画中的对象,创建导航元素和交互元素,扩展Flash创作交互动画和网络应用的能力。