`
rrsy23
  • 浏览: 185665 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Flex blazeDs 的误解[其实很简单]

    博客分类:
  • RIA
阅读更多

最近考虑项目是不是要引进Flex技术,所以花一周研究Flex的几大方面,先给出自己的一点体会[很浅],希望交流!

 

今天的富客户端,无论ajax,flex,javafx,sliverlight!

 

 都不可回避的问题是什么???

 

   客户端[可以看做新时代的web层]与服务器[看做新时代的服务组件]怎么交互.

   最好是客户端,服务器端有容器帮我们解决,让我们写ajax,flex想struts2 freemarker一样简单!

 

   所以:

         Flex在客户端有Cairngorm

               在服务器端有blazeDs

   不过如果真的用还是建议自己简化封装blazeDs就是java的代码,以servlet作为入口,如果用过axis,cxf,呵呵是不是就  是 soap和AMF区别,那就是编码,解码器不同[引用通信术语],思考!

 

 必须考虑的问题是什么?

 

  通信的效率,通信的次数,编码解码的效率,UI渲染的效率[Ext渲染,与服务器交换次数,数量,javaeye的人应该生有体会,]

 

 我们来简单看一个,flex+tomcat [blazeDa弱化,只是java的一个框架类似struts,axis]的例子,生有不要强化blazeDs需要弱化,因为知道AMF协议自己可以做个blazeDs 呵呵AMFPHP就是哈!

 

简单看哈Flex端代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundGradientColors="[0x000000,0x323232]">
   
   <mx:ChannelSet id="channelSet">
        <mx:AMFChannel id="amfChannel" url="http://localhost:8080/blazeDsTomcat/blazeDs/bobo"/>
    </mx:ChannelSet>
   
   <mx:RemoteObject id="srv" destination="language" channelSet="{channelSet}"/>
   
    <mx:DataGrid dataProvider="{srv.getLanguages.lastResult}" width="100%" height="100%">
        <mx:columns>
            <mx:DataGridColumn dataField="id" headerText="id"/>
            <mx:DataGridColumn dataField="name" headerText="Name"/>
            <mx:DataGridColumn dataField="desc" headerText="Desc"/>
            </mx:columns>
    </mx:DataGrid>

    <mx:Button label="Get Data" click="srv.getLanguages()"/>   
       
</mx:Application>

 

http://localhost:8080/blazeDsTomcat/blazeDs/bobo这个很重要哈,看看服务器web.xml中怎么配置的哈?

 

<servlet>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/blazeDs/*</url-pattern>
    </servlet-mapping>

 

哈哈Flex端请求到了flex.messaging.MessageBrokerServlet这个不就是Servlet与axis,struts有何区别

唯一不同是http承载的数据格式不同,需要不同的解码与编码器,一般内置了哈,开发是透明的!所以sping就是想达到开发flex与传统开发java没有多大区别,是开发值关心Flex ui 与event 与pojo

 

那么?MessageBrokerServlet类怎么处理请求,猜想肯定找对应的类解码AMF数据然后调用处理者[我们的业务组件]

源码:

String contextPath = req.getContextPath();
            String pathInfo = req.getPathInfo();
            String endpointPath = req.getServletPath();
            if (pathInfo != null)
                endpointPath = endpointPath + pathInfo;

            Endpoint endpoint = null;
            try
            {
                endpoint = broker.getEndpoint(endpointPath, contextPath);
            }

呵呵根据请求找到对应的endpoint ,然后解码----调用业务组件---编码  返回Flex端

 

看看服务器端代码与配置[消除了网上很多例子的融于代码]

 

上面web.xml可以看到初始化了services-config.xml文件类似spring,一切都差不多,我们看看services-config.xml文件是什么? 如下

<?xml version="1.0" encoding="UTF-8"?>
<services-config>

    <services>
        <service-include file-path="remoting-config.xml" />  
    </services>
    <channels>
        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/blazeDs/bobo" class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>
</services-config>
就这样简单,引入了remoting-config.xml,看看这个文件是什么

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object"
        class="flex.messaging.services.remoting.adapters.JavaAdapter"
        default="true"/>
    </adapters>
    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
   
    <destination id="language">
        <properties>
            <source>com.bobo.ComputerLanguageService</source>
        </properties>
    </destination>

</service>

也简单哈,大家仔细体会哈

 

blazeDs 是不是只是个axis,xfire这样差不多的[比axis,xfire还是轻量点哈]的一个接受请求,解码,调用服务[我们的],编码,就是个java的Servlet

 

所以关键是什么

 

 

客户端运行语言as----编码 为X[amf]------HTTP---------服务器接受请求派发[servlet]-----X解码----调用服务----java编码为X---返回客户端---X解码为客户端语言的类型

这个过程.,怎么做

1.都自己做 [会怎么样],想想javade发展 sevlet--jsp--srtuts1  webwork jsf

2.容器做 通信 编码解码

3框架类库

框架类库与容器概念今天不是很明确了

 

估计大家 很少几个能 看完的,不喜欢写博客就是业务说不清

 还是喜欢 直接站在讲台讲课哈,可是 没有这样的好机会

 

代码见附件,2部分  flex java 那过去就可以跑!

localClientFlex.rar是flex的一个MXML需要你机器有Flex环境

localFlexClient_swf.rar包含flash直接可以运行但是要考虑安全设置

 

 

 

 

 

4
0
分享到:
评论

相关推荐

    Flex Blazeds入门教程

    ### Flex Blazeds入门教程详解 #### 一、引言 Flex Blazeds入门教程,由刘铭朝撰写于2008年3月21日,旨在解决开发者在搭建Flex与LCDS(Flex Data Services)工程时遇到的常见问题。这篇教程不仅详细介绍了创建项目...

    flex blazeDS开发使用手册,对于集成blaze开发很有用处。

    Flex BlazeDS开发使用手册是Adobe官方提供的一份详尽指南,旨在帮助开发者高效地集成BlazeDS框架到Flex应用程序中。BlazeDS是一款开源的服务器端技术,它为富互联网应用(RIA)提供了数据推送、消息传递和Remoting...

    flex blazeds的入门例子

    在这个实例中,我们关注的是一个简单的方法,该方法接收在Flex前端输入的字符串,并在Java后端返回一个处理后的字符串。 首先,让我们了解一下Flex。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网...

    Flex blazeds-spring

    Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring

    Flex BlazeDS

    flex blazeds实现服务器向客户端推送数据 环境Eclipse Java EE IDE 服务apache-tomcat-7.0.23-windows-x86 blazeds采用的是blazeds4.0.0.14931 (附件中包含 apache-tomcat-7.0.23 + 源码 + 说明文档)

    flex blazeds turnkey包分卷一

    flex blazeds turnkey包flex blazeds turnkey包

    Flex BlazeDS java 项目

    综上所述,Flex BlazeDS Java项目涉及到前端UI设计、后端服务开发、数据交互、事件处理等多个方面的技术,对于希望学习和掌握Flex与Java集成开发的开发者来说,是一个很好的实践案例。通过深入研究该项目的源码,...

    flex+blazeDS配置指南

    《Flex+BlazeDS配置详解》 在现代Web开发中,富互联网应用程序(RIA)的交互性和用户体验成为了关键。Flex作为Adobe开发的RIA框架,以其强大的图形界面设计和丰富的交互功能受到广泛欢迎。而BlazeDS是Adobe提供的一...

    Flex Spring JAVA BLAZEDS整合

    【Flex Spring JAVA BLAZEDS整合】是一种技术实践,它将Adobe Flex的前端展示层与Spring框架的后端业务逻辑层紧密结合,利用BlazeDS作为中间件进行数据传输。Flex作为一个强大的RIA(富互联网应用程序)开发平台,常...

    flex + blazeDs

    标题中的“Flex + BlazeDS”指的是使用Adobe Flex作为前端开发框架,与BlazeDS作为后端数据服务的集成技术。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用程序(RIA),它允许开发者创建具有动态...

    flex 工具 blazeds

    BlazeDS是Flex的配套服务器组件,它允许Flex应用通过AMF(Action Message Format)与Java应用程序进行高效的数据通信。BlazeDS不仅支持远程方法调用(RPC),还支持发布和订阅消息模型,使得实时数据同步成为可能。...

    flex BlazeDS java整合过程中犯的错误

    flex BlazeDS java整合过程中犯的错误

    JAVA通过BlazeDS与FLEX通信

    JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入

    Flex + blazeds + Java推送

    Flex + blazeds + Java推送Demo 本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk...

    flex blazeds spring集成

    Flex Blazeds Spring集成是将Adobe的Flex前端技术与Spring框架后端服务相结合的一种开发模式。这个DEMO展示了如何在Flex客户端应用中利用Spring框架来管理和服务通信,从而实现更高效、灵活的分布式应用程序。 Flex...

    Flex BlazeDS通信

    Flex BlazeDS通信是一种在富互联网应用程序(RIA)中实现客户端与服务器端数据交互的技术。它主要涉及Adobe Flex作为前端开发工具,以及BlazeDS作为后端数据服务的中间件。BlazeDS是Adobe官方推出的一个开源项目,...

    flex+blazeds+spring

    标题“flex+blazeds+spring”表明我们要探讨的是如何将Flex前端与BlazeDS中继层和Spring后端框架结合起来,实现完整的数据交互和应用程序逻辑。 在Flex与Spring集成的环境中,Flex作为用户界面展示层,负责与用户...

    Flex Blazeds java实现企业级Web系统页面【源码】

    Flex Blazeds与Java的集成在企业级Web系统开发中扮演着重要角色,它提供了一种高效、灵活的方式来构建富互联网应用程序(RIAs)。Blazeds是Adobe推出的一个开源项目,它作为Flex与服务器端技术之间的桥梁,尤其与...

    Flex+blazeDS+Spring官方Demo,环境搭建

    Flex+blazeDS+Spring官方Demo,环境搭建,内含十几个例子,从易到难,包括spring消息,spring安全,注解方式和非注解配置文件方式,十分好用。内含有tomcat,可直接启动并运行用户手册。

Global site tag (gtag.js) - Google Analytics