Flex + LCDS + Java
入门教程
一.引
很多人在帖子和群中问到过一些关于建立
Flex+LCDS
(
FDS
)工程的问题,由于操作上的东西,很难简单说清楚,于是写了一个简单的教程(本来很早就答应过的,结果被
newfish
逮住做东西,加上公司的事,一直抽不出时间哈,现在想换换头脑,偷乐一下懒哈,各位别跟
newfish
大大说),帮助大家入门,其实这些东西都是在
LCDS
的
sample
中包含了的(当然,
sample
只是包含源码)。
本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建
Flex
的
LCDS
工程,并利用工具快速整合和部署
J2EE
项目和
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
里的说明。官方有下载,需要注册会员(免费)。
LCDS
实际是付费的,但是免费也能使用,似乎是少了多
CPU
的支持。当然还有一些其他的数据服务,比如
AMFPHP
之类的。
当然,
LCDS
提供的功能我们都能自己实现,并非
Flex
脱离了
LCDS
就不能和后台打交道了,除了
RemoteObject
还有
WebSerivce
、
HTTPService
等等。只是说,
LCDS
提供了更多的方便和特性。
3.
Java
是什么?
……
三.准备
1.
下载开发环境:
Eclipse 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
项目中的,而不需要单独的部署了。性能上也高出
FB2
LCDS
:安装
lcds
后,起作用的是里面的
flex.war
文件,实际上,这就是一个
j2ee
的工程。在发布到
web
应用服务器后(比如
tomcat
、
j4run
等)就会被解压成一个工程。当然,在
FB3
里,这个发布的过程会更加的简单。
2.
安装:
略
四.入门教程
1.
新建
FlexLCDS
工程
File -> new -> Flex Project …
注:以下设置绝大多数都可以在项目属性中可以修改。
1).
向导界面
1

说明:
Java source folder
就是你自己
java
业务源码存放的根目录,在
FB3
里,
LCDS
项目旨在将
Java J2ee
项目和
FlexLcds
项目混合。
当然如果你不选择
combined
两个在一起,那么就麻烦些:要么你再单独新建一个
Flex
项目,而这个项目只写
java
代码。要么再建一个
J2ee
工程写
java
代码,而这个项目只写
Flex
代码,但最后要把
Java
编译后的
class
文件放到这个项目下的
webroot\web-inf\classes
目录中。即不管怎样,最后发布时,
java
编译后的
class
文件必须和
lcds
部署的项目在一起。(听起来绕昏头了?那就在一个工程里吧)
2).
向导界面
2

说明:
Target runtime
实际上没什么用(后来我删除了配置文件里的对应信息,也没问题),但是不指定就不能继续,如果这里显示的是
<none>
那么就新建一个
Tomcat
的
runtime
,简单的只需要指定
tomcat
的安装目录即可。
Content folder
实际上就是最终编译后的容器目录,因此,
Lcds
的
flex.war
文件将会发布到
该目录
下的
web-inf
下的
flex
目录中。同时因为教程采用的是
MyEclipse
,他默认的就是发布
WebRoot
里的内容,为了自动化,因此这里改为了
WebRoot
(这也是
java
开发的习惯)
Flex WAR file
指的是安装了
lcds
后的
flex.war
文件的路径
Compilation options
指定了
flex
文件的编译方式,选择推荐的在
FlexBuilder
里编译吧,虽然开发时多耗点时间,但是在发布后不会占用服务器的编译处理时间,对用户来说是有好处的。
Output folder
指的是
Flex
编译后的
swf
和
html
等文件存放的路径,这里改为了
WebRoot\bin
3).
向导界面
3

说明:
Main source folder
是
flex
的源码存放根目录,当然和
java
源码分开了。
Output folder URL
是在开发过程中运行和调试的请求路径,这个与发布无关,不会影响任何你在程序中使用的路径,但是能使开发方便
注意:
FlexBuilder3
这里存在
bug
,新建工程时,部分自定义的属性并没有保存下来,而必须在新建后的项目属性中更改,后面有说明到
放心这些设置都可以在以后修改。
4).
新建完成的项目结构看起来是这样的

2.
用
MyEclipse
添加
Web
容器
之前说到了,
MyEclipse
是很好用的
J2EE
的开发插件,其中就包含了部署功能。我们可以抛开烦琐的手动部署,交由
MyEclipse
完成吧,当然,首先得让你的
FlexLCDS
工程变成为
J2EE
的
Web
工程。

1).
向导界面
1

注意:不要点快了,把这里的
Create web.xml
取消,这样就不会覆盖
LCDS
创建的
web.xml
文件
现在我们的工程的图标变成了
J2EE Web
工程了,这意味着,你可以用
MyEclipse
来发布它或者添加更多容器,比如
hibernate
、
spring
等
3.
部署
FlexLCDS
工程
有了
MyEclipse
,那么你就不用手动的部署你的项目了,可以简单的通过
点击工具栏上的这个图标

1).
部署向导
1

注意:(如果你的列表中没有服务器,那么就自己建一个)
2).
新建部署
Web
应用服务器

注意:如果是
MyEclipse6.0
,则会自带一个
Tomcat
服务器。如果不是
6.0
,那么点
Edit server connectors…
自己添加一个
tomcat
。
点
finish
后则会开始部署。成功后会在
Deployment status
里提示
success
,并且看到列表中你的项目已经成功部署
4.
修改一下项目的访问路径
打开项目的属性,在这里,我们可以重新修改项目编译和发布的配置,包括先前向导里的设置

修改
output folder url

为什么要这么做?
这样每次发布都会自动将编译的最终
swf
文件直接发布至
WebRoot\bin
目录下,而下面的
output folder url
则会在我们启动和调试项目时,直接请求这个路径(这跟发布无关,只是我们在开发过程中会方便些)
5.
修改
Flex Server
的项目容器属性(非常重要,多数连接路径错误就是这里配置错误)
改成如下配置

说明:
Root url
当然就是你的
web
服务器的根路径了,
Tomcat
默认是
8080
端口,如果改了就自己修改
Context root
就是
LCDS
工程的名称(注意:如果你分开为两个工程,则这里指的是你
J2ee
项目的名称,而不是你
Flex
项目的名称,因为你在请求
Java
的数据服务),在
Flex
请求
LCDS
时,会采用这个作为参数
http://{server.name}:{server.port}/{context.root}/messagebroker/amf
如果
Context root
错了,那么永远不可能正确的请求
LCDS
的服务了
。
确定后,我们来运行测试一下这个
FlexLCDS
项目是否能正常访问
6.
启动服务器
稍等片刻,等到服务器完全启动后继续下面的操作
7.
运行访问
注:如果之前的
Output folder url
配置正确,那么会自动的弹出访问页面,
DEBUG
时也是一样。
OK
,一切顺利,至此,你已经做到了第一步,即,将
Flex
项目、
LCDS
服务成功的整合至
J2EE web
项目,这样的好处就是今后发布省的麻烦了。
五.简单的
RemoteObject
1.
什么是
RemoteObject
?
顾名思义,即远程对象。这里指的就是在
Flex
中获取
Java
里的对象。有什么用呢?这样
Flex
可以更加简单的获取服务端的数据,比如你在
Java
中有个方法进行了数据查询,取出的结果是
Array
类型,那么你可以很容易通过
Flex
里的
RemoteObject
访问到该类,并调用该方法,最后返回的数据是
Flex
也兼容的
Array
对象。
2.
新建
Java
类
File -> new ->other
(如果你没在列表中看到
java class
的话)
1).
新建向导
1
2).
向导
2
注意:别忘记了你设定的
java
源码根目录路径,如果对
java
不熟悉的话,这里我就不解释了,照着做吧。
3).
编写如下代码
package
com.test;
public
class
FirstJavaClass {
public
String sayHello(String str){
return
"
你说的是:
"
+str;
}
}
3.
配置
Flex LCDS
的
Remoting-config.xml
1).
他是
remoteobject
和相关远程访问的配置文件,路径位于
注意:现在
LCDS
是你的项目的一部分了,因此不用来回的在服务器中修改配置然后再发布了。
2).
改写其代码如下
<?
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
=
"FirstJavaClassRemoteObject"
>
<
properties
>
<
source
>
com.test.FirstJavaClass
</
source
>
<
scope
>
application
</
scope
>
</
properties
>
</
destination
>
</
service
>
说明:一个
destination
指定的就是一个
RO
对象,他的
id
就是在
Flex
中
RO
请求的
destination
,
source
指的是这个
Java
类的路径
注意:在修改了配置文件后可能需要重启
web
服务器(
Tomcat
)
4.
编写
mxml
来请求
RO
1).
打开
MyFirstLCDS.mxml
编写代码如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="
http://www.adobe.com/2006/mxml
" layout="
absolute
"
>
<mx:Script>
<![CDATA[
import
mx.rpc.events.ResultEvent;
import
mx.controls.Alert;
private
function
callRO(str:String):
void
{
firstRO.sayHello(str);
firstRO.addEventListener(ResultEvent.RESULT,getROResult);
}
private
function
getROResult(e:ResultEvent) :
void
{
Alert.show(e.result.toString());
}
]]>
</mx:Script>
<mx:RemoteObject
id="
firstRO
" destination="
FirstJavaClassRemoteObject
"
/>
<mx:Button
click="callRO(
'hi~
你好
'
)" label="
请求
"
/>
</mx:Application>
2)
.
OK
,保存好后,用之前的方法来运行一下看看?
RemoteObject
的简单教程完
分享到:
相关推荐
1. **新建FlexLCDS工程** - 在Eclipse中,选择"File -> New -> Flex Project"。 - 在向导中,设置Java源代码的根目录,这将决定你的Java代码在哪里编译。 - "Target runtime"用于指定Tomcat的运行时环境,确保...
通过以上步骤,你将完成一个基本的Flex + LCDS + Java入门项目。随着对这套技术栈的深入理解,你可以探索更多高级特性,如数据缓存、事务管理、安全控制等,进一步提升应用程序的功能和性能。记住,尽管LCDS提供了...
### Flex+LCDS+Java 入门教程知识点详解 #### 一、引言 本教程旨在帮助初学者了解如何创建Flex与LCDS相结合的工程项目,并通过整合和部署J2EE项目与LCDS项目来实现简单功能。教程通过图文并茂的方式,详细介绍了...
Flex+LCDS+Java入门教程,如何使用MyEclips进行配置
### Flex + LCDS + Java 入门教程精要 #### 引言 随着技术的发展,Flex、LCDS以及Java成为了构建高效、交互性强的应用程序的重要工具。本文将深入解析Flex + LCDS + Java的核心概念与实践技巧,为初学者提供一个...
1. 创建FlexLCDS工程: - 通过File -> New -> Flex Project创建新项目。 - 在向导中,选择Java源代码的根目录,这将使得Flex和Java代码在同一项目中协同工作。 - 设置Target runtime为Tomcat运行时,确保指向...