《2022年Flex+++LCDS+++Java+入门教程 .pdf》由会员分享,可在线阅读,更多相关《2022年Flex+++LCDS+++Java+入门教程 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Flex+LCDS(Blazeds)+Java 入门教程2008-3-21 刘铭朝一引很多人在帖子和群中问到过一些关于建立Flex+LCDS(FDS)工程的问题,由于操作上的东西,很难简单说清楚,于是写了一个简单的教程(本来很早就答应过的,结果被newfish 逮住做东西,加上公司的事,一直抽不出时间哈,现在想换换头脑,偷乐一下懒哈,各位别跟newfish大大说),帮助大家入门,其实这些东西都是在LCDS 的 sample 中包含了的(当然,sample 只是包含源码)。本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex 的 LCDS工程,并利用工具快速整合和部署J2E
2、E 项目和 LCDS 项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握 LCDS 的应用之一。二介绍1.Flex 是什么?不用说了吧。2.LCDS 是什么?LCDS(LiveCycle Data Service)之前叫做FDS(Flex Data Service),他是基于java(也有 ColdFusion版的)后端的数据服务工程,功能包括映射Java 对象到 Flex 对象(包括调用Java 类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF 等等功能,详细请参考LCDS里的说明。官方有下载,需要注册会员(免费)。LCD
3、S 实际是付费的,但是免费也能使用,似乎是少了多CPU的支持。当然还有一些其他的数据服务,比如AMFPHP 之类的。当然,LCDS 提供的功能我们都能自己实现,并非Flex 脱离了 LCDS 就不能和后台打交道了,除了 RemoteObject还有 WebSerivce、HTTPService 等等。只是说,LCDS 提供了更多的方便和特性。Blazeds 是什么?简单一句话:是官方从LCDS中分离出来的开源的数据服务中间件,能满足一般系统的开发需求。3.Java 是什么?不用说了吧。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -三准备1.下载开发环境:Eclips
4、e 3.3+FlexBuilder3 beta2 插件版+MyEclipse 6.0+Lcds+Tomcat 5和以上(官方都有下载,或者google 里搜一搜哈)MyEclipse:做 Java 开发都应该知道MyEclipse 是比较好的J2EE项目的开发及部署工具的,我们主要用它来部署Flex 和 Java 结合的项目。6.0 是适合 Eclipse3.3 版的。他自带了一个Tomcat 服务器FB3:相比 FB2,他在 LCDS工程上做了很大的改进,特别是beta2,项目向导更加的易懂,而且比 FB2 更好的是,Flex.war 是被打包在你的Flex 项目中的,而不需要单独的部署了。
5、性能上也高出 FB2 LCDS:安装 lcds 后,起作用的是里面的flex.war 文件,实际上,这就是一个j2ee 的工程。在发布到 web 应用服务器后(比如tomcat、j4run 等)就会被解压成一个工程。当然,在FB3 里,这个发布的过程会更加的简单。Blazeds:不用安装,下载了就OK,要的是里面的blazeds.war,与 LCDS 的 flex.war一样。2.安装:略四入门教程1.新建 FlexLCDS 工程File-new-Flex Project 注:以下设置绝大多数都可以在项目属性中可以修改。1).向导界面 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 2
6、页,共 20 页 -说明:Java source folder就是你自己java 业务源码存放的根目录,在FB3 里,LCDS 项目旨在将Java J2ee 项目和 FlexLcds 项目混合。当然如果你不选择combined 两个在一起,那么就麻烦些:要么你再单独新建一个Flex 项目,而这个项目只写java 代码。要么再建一个J2ee 工程写 java 代码,而这个项目只写Flex 代码,但最后要把Java 编译后的class 文件放到这个项目下的webrootweb-infclasses目录中。即不管怎样,最后发布时,java 编译后的class 文件必须和lcds 部署的项目在一起。(
7、听起来绕昏头了?那就在一个工程里吧)2).向导界面 2 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -说明:Target runtime实际上没什么用(后来我删除了配置文件里的对应信息,也没问题),但是不指定就不能继续,如果这里显示的是 那么就新建一个Tomcat 的 runtime,简单的只需要指定 tomcat 的安装目录即可。Content folder实际上就是最终编译后的容器目录,因此,Lcds 的 flex.war 文件将会发布到该目录 下的 web-inf 下的 flex 目录中
8、。同时因为教程采用的是MyEclipse,他默认的就是发布WebRoot里的内容,为了自动化,因此这里改为了WebRoot(这也是java 开发的习惯)Flex WAR file 指的是安装了lcds 后的 flex.war文件的路径第二张图是选择开源的blazeds.war Compilation options指定了 flex 文件的编译方式,选择推荐的在FlexBuilder 里编译吧,虽然开发时多耗点时间,但是在发布后不会占用服务器的编译处理时间,对用户来说是有好处的。Output folder 指的是 Flex 编译后的 swf 和 html 等文件存放的路径,这里改为了WebRoo
9、tbin 3).向导界面 3 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -说明:Main source folder 是 flex 的源码存放根目录,当然和java 源码分开了。Output folder URL 是在开发过程中运行和调试的请求路径,这个与发布无关,不会影响任何你在程序中使用的路径,但是能使开发方便注意:FlexBuilder3这里存在bug,新建工程时,部分自定义的属性并没有保存下来,而必须在新建后的项目属性中更改,后面有说明到放心这些设置都可以在以后修改。4).新建完成的项目结构看起来是这样的名师资料总结-精品资料欢迎下载-名师精心整理-第 6
10、 页,共 20 页 -2.用 MyEclipse 添加 Web 容器之前说到了,MyEclipse 是很好用的J2EE 的开发插件,其中就包含了部署功能。我们可以抛开烦琐的手动部署,交由MyEclipse 完成吧,当然,首先得让你的FlexLCDS 工程变成为J2EE 的 Web工程。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -1).向导界面 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 20 页 -注意:不要点快了,把这里的Create web.xml取消,这样就不会覆盖LCDS创建的 web.xml 文件现在我们的工程的图标变成了J2EE
11、Web 工程了,这意味着,你可以用MyEclipse 来发布它或者添加更多容器,比如hibernate、spring 等3.部署 FlexLCDS 工程有了 MyEclipse,那么你就不用手动的部署你的项目了,可以简单的通过点击工具栏上的这个图标1).部署向导 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 20 页 -注意:(如果你的列表中没有服务器,那么就自己建一个)2).新建部署 Web 应用服务器名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 20 页 -注意:如果是MyEclipse6.0,则会自带一个Tomcat 服务器。如果不是6.0,那么点E
12、dit server connectors自己添加一个tomcat。点 finish 后则会开始部署。成功后会在Deployment status里提示 success,并且看到列表中你的项目已经成功部署4.修改一下项目的访问路径打开项目的属性,在这里,我们可以重新修改项目编译和发布的配置,包括先前向导里的设置名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 20 页 -修改 output folder url 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 20 页 -为什么要这么做?这样每次发布都会自动将编译的最终swf 文件直接发布至WebRootbin目录
13、下,而下面的 output folder url则会在我们启动和调试项目时,直接请求这个路径(这跟发布无关,只是我们在开发过程中会方便些)5.修改 Flex Server 的项目容器属性(非常重要,多数连接路径错误就是这里配置错误)改成如下配置名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 20 页 -说明:Root url 当然就是你的web 服务器的根路径了,Tomcat 默认是 8080 端口,如果改了就自己修改Context root 就是 LCDS工程的名称(注意:如果你分开为两个工程,则这里指的是你J2ee 项目的名称,而不是你Flex 项目的名称,因为你在请求Ja
14、va 的数据服务),在 Flex 请求 LCDS 时,会采用这个作为参数http:/server.name:server.port/context.root/messagebroker/amf 如果 Context root错了,那么永远不可能正确的请求LCDS 的服务了。确定后,我们来运行测试一下这个FlexLCDS 项目是否能正常访问6.启动服务器稍等片刻,等到服务器完全启动后继续下面的操作7.运行访问名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 20 页 -注:如果之前的Output folder url配置正确,那么会自动的弹出访问页面,DEBUG 时也是一样。OK,
15、一切顺利,至此,你已经做到了第一步,即,将 Flex 项目、LCDS服务成功的整合至J2EE web 项目,这样的好处就是今后发布省的麻烦了。五简单的RemoteObject 1.什么是 RemoteObject?顾名思义,即远程对象。这里指的就是在Flex 中获取 Java 里的对象。有什么用呢?这样Flex 可以更加简单的获取服务端的数据,比如你在 Java 中有个方法进行了数据查询,取出的结果是Array名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 20 页 -类型,那么你可以很容易通过Flex 里的 RemoteObject访问到该类,并调用该方法,最后返回的数据是
16、Flex 也兼容的Array 对象。2.新建 Java 类File-new-other(如果你没在列表中看到java class 的话)1).新建向导 1 2).向导 2 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 20 页 -注意:别忘记了你设定的java 源码根目录路径,如果对java 不熟悉的话,这里我就不解释了,照着做吧。3).编写如下代码package com.test;publicclass FirstJavaClass public String sayHello(String str)return你说的是:+str;3.配置 Flex LCDS 的 Remo
17、ting-config.xml 1).他是 remoteobject和相关远程访问的配置文件,路径位于名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 20 页 -注意:现在LCDS 是你的项目的一部分了,因此不用来回的在服务器中修改配置然后再发布了。2).改写其代码如下 com.test.FirstJavaClass application 名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 20 页 -说明:一个destination 指定的就是一个RO 对象,他的id 就是在Flex 中 RO 请求的destination,source 指的是这个Java 类的
18、路径Factory 可以使用 spring,这跟我们的技术架构相符合,采用 spring,需要引入 flex-spring.jar这个包;我们在解决延时加载问题时,需要用另外一个适配器,所以要修改上面的配置如下:net.digitalprimates.persistence.hibernate.utils.HibernateUtil getCurrentSession加入的 destination 写法如下springFactoryworkflowViewService这里的 引入非需要延时加载的远程对象服务,引入的是上面定义的spring 工厂,为 spring 配置里的 bean 实例对象 ID 名注意:在修改了配置文件后可能需要重启web 服务器(Tomcat)4.编写 mxml 来请求 RO 1).打开 MyFirstLCDS.mxml 编写代码如下名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 20 页 -2)OK,保存好后,用之前的方法来运行一下看看?RemoteObject的简单教程完名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 20 页 -