- 浏览: 950910 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (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 1694此问题也适用于Flex 首先说明我的状况 在使用外部加载资源 ... -
Starling中MovieClip倒序,反向播放
2013-01-28 12:39 1711关于Starling中的MovieClip反向、倒序播放实现 ... -
Starling-Feathers中设置单个组件对象的样式
2013-01-21 21:00 1479关于基于Starling的Feathers组件库,版本号比较小 ... -
使用Spring BlazeDS出现Error creating bean with name '_messageBroker': Invocation***
2013-01-19 22:03 10243我这里的情况其实是在写Junit的时候出现的这个错误,但是应该 ... -
关于air for IOS和JavaPNS实现数据推送服务的步骤记录
2013-01-05 21:20 3533看过了很多博客和相关的说明介绍 总结出一个结论:就是Java ... -
关于AIR for IOS开发时,推送服务的证书(***.cer)使用
2013-01-04 16:04 1619Adobe 官方的帮助文档其实有了Demo和依次的步骤 地址如 ... -
关于Class flash.notifications::RemoteNotifierSubscribeOptions could not be found.
2013-01-04 11:51 1545关于在ActionScript 的Mobile移动项目中,使用 ... -
关于Starling的交互响应
2012-12-24 19:11 1374对于Starling的交互 已经不能使用MouseDown、 ... -
关于Flex初始化时访问的stage为null的问题
2012-12-19 22:09 1823在使用Flex编写AIR程序的时候 访问this.stage ... -
关于Adobe Scout查看信息中的"Decompressing images"解压缩图片
2012-12-19 17:47 1333在使用Adobe Scout的时候,查看具体的执行处理日志信息 ... -
关于Tweenlite的一些使用参数
2012-12-10 10:34 1607在网上找了很多关于Tweenlite的讲解和说明,但是在实际应 ... -
在IOS设备上调试AIR出现Installation Error: ApplicationVerificationFailed.
2012-12-05 17:43 3197具体原因不明~ clean 了工程就好了 -
Flex Mobile移动开发通过BlazeDS与服务器通信遇到的链接频道失败问题
2012-11-29 23:33 2087producer channel faulted with C ... -
Flex Mobile移动开发报类似错误E:\dev\4.y\frameworks\projects\framework\src\mx\managers
2012-11-07 11:00 1147类似错误 看起来很莫名其妙,居然有个绝对路径的信息,但是 ... -
Flash Player 11和AIR 3的十个重要特性
2011-07-14 09:53 1213引用http://www.bytearray.org/?p=3 ...
相关推荐
博客链接提供的文档“配置RemoteObject.docx”应该详细介绍了如何在实际项目中配置和使用RemoteObject,包括可能遇到的问题和解决方案。如果你在使用RemoteObject时遇到困难,可以参考该文档或在线搜索相关资源,如...
有两种方式调用:一是直接通过声明的变量调用,二是直接在ActionScript代码中新建RemoteObject对象并调用方法。这两种方式都能实现在客户端调用服务器端的逻辑。 完成上述步骤后,将项目部署到Tomcat服务器,运行...
在遇到问题时,利用日志和调试工具进行排查。 总的来说,"activiti+flex"项目搭建涉及到了多个技术层面,包括数据库管理、服务端开发、前端开发以及它们之间的集成。这个过程不仅需要对Activiti和Flex有深入的理解...
部署文档通常会包含详细的步骤和可能遇到的问题解决方案。 8. **测试与调试**:通过编写简单的客户端测试程序,验证服务器和客户端之间的数据交互是否正常。BlazeDS还提供了一款名为LiveCycle Data Services ...
10. **最佳实践**:分享在企业级项目中使用BlazeDS的经验,包括设计模式、架构设计和项目管理。 通过阅读《Professional BlazeDS》,读者将掌握如何利用BlazeDS和Flex构建高效、可扩展的RIA,提升Web应用的用户体验...
最后,我们将探讨性能优化和部署策略,帮助你更好地理解和解决在实际项目中可能遇到的问题。 通过这个Flex + LCDS + Java入门教程,你将具备使用Flex构建富客户端应用,利用LCDS与Java后端无缝通信的能力。无论你是...
本教程将详细讲解如何使用Flex与数据库进行通信,包括连接MySQL数据库,以及在开发过程中可能遇到的问题及其解决方案。 1. **Flex与数据库的通信基础** Flex可以通过AMF(Action Message Format)或HTTP服务与...
标题中的“flex + java web 整合”指的是在Java Web应用程序中集成Adobe Flex技术,用于构建富互联网应用程序(RIA)。...如果你在整合过程中遇到问题,可以查阅相关文档,或在社区如iteye上寻求帮助。
这本书旨在帮助开发者解决在使用Flex进行项目开发时遇到的各种问题,提供了一系列的解决方案和实例代码,覆盖了Flex开发的各个方面。 1. **Flex基础**:书中首先介绍了Flex的基础知识,包括MXML和ActionScript的...
提供的“flex和j2ee整合.doc”文档很可能是关于这个整合过程的详细指南,包含了步骤、配置示例以及可能遇到的问题和解决方案。阅读这份文档将有助于深入理解Flex与Java的整合技术。 综上所述,Flex与Java的整合是...
Flex远程过程调用(RPC)部署涉及多个关键步骤和技术,主要目标是使Flex客户端能够...遇到问题时,不要犹豫寻求他人的帮助,并且分享你的知识和经验。遵循这些步骤,可以有效地部署和实现Flex应用的远程过程调用功能。
6. **错误处理**:在Flex和Servlet之间的通信过程中,可能会遇到网络问题、数据解析错误等。因此,需要在Flex代码中设置适当的错误处理机制,如添加`faultHandler`事件监听器,以便在出错时能够给出反馈。 7. **...
5. **错误处理和调试**:整合过程中,可能会遇到类型转换错误、网络通信问题等,需要进行异常处理和调试。可以利用Flex的logcat或者Java的日志系统来追踪错误。 6. **安全性考虑**:整合Flex3和iBatis3时,需要考虑...
Flex和Spring是两种在开发富互联网应用程序(RIA)和企业级应用时常用的技术。Flex是Adobe公司推出的一种基于ActionScript的开源框架,主要用于构建...在使用过程中,遇到问题可以参考IT氧吧等技术论坛获取帮助和支持。
源码中会包含如何使用HTTPService、WebService或RemoteObject来调用远程服务并处理返回的数据。 6. **图形和动画**:Flex 3提供了强大的图形和动画功能,源码可以展示如何使用Graphics API绘制矢量图形,以及如何...
- 使用MXML编写Flex前端应用,创建一个`RemoteObject`实例,设置其目的地为之前定义的`helloWorld`,并添加一个按钮触发远程调用,输入框接收用户输入,以及显示返回结果的标签。 通过以上步骤,我们可以实现Flex...
Flex Blazeds入门教程,由刘铭朝撰写于2008年3月21日,旨在解决开发者在搭建Flex与LCDS(Flex Data Services)工程时遇到的常见问题。这篇教程不仅详细介绍了创建项目的过程,还涵盖了如何整合与部署J2EE项目和LCDS...
标题"AMF移植代码"暗示我们将讨论在不同环境中使用或重用AMF编码的数据时可能遇到的问题和解决策略。描述中的"移植RTMP看看效果"表明我们可能正在处理基于RTMP(Real-Time Messaging Protocol)的流媒体应用,RTMP常...
在Flex中,你可以使用ActionScript类来映射服务器端的服务,这些类通常会继承自`mx.rpc.remoting.RemoteObject`。 在AMFPHP 1.9中,值得注意的是其对AMF0和AMF3两种版本的支持。AMF0是早期的版本,而AMF3则提供了更...
在Flex中,我们可以使用RemoteObject组件来调用Java服务。 ```xml <!-- 在.mxml文件中 --> <s:RemoteObject id="helloWorldService" destination="HelloWorldService" fault="faultHandler(event)" /> <!...