1 .我的部署环境是:
flexBuilder3,LCDS251,MyEclipse
5.5.1 GA
安装lcds2.5.1并打开目录时,其中包含flex.war
关闭tomcat (如果已打开) () ) ) ) ) ) ) )。
将flex.war复制到tomcat的webapps目录中
重新启动tomcat时,您会看到webapps中添加了目录flex。 这就是我们想要的
可以删除flex.war
将flex文件夹复制到其他位置,反正不能在web应用程序中。 (我不知道为什么)
8 .可以开始了。 在MyEclipse中创建新web
项目(假定名为demo web ) ) )。
9 .打开刚移动的flex目录,将其中的所有WEB-INF复制到工程演示web的WebRoot/WEB-INFO中,然后单击“全部”。
即,复盖原始文件
9.5。
flex文件夹中有一个jars目录,其中有几个java软件包。 将中的所有jar复制到DemoWeb上的webroot/we B- info lib目录中。
//ok,准备好了。 现在可以创建代码测试了
10 .在flex builder中创建新的flex项目。 请放心。 仅用于创建mxml文件
11 .创建mxml代码。 我的代码如下。
Java代码
xmlns 3360 MX=' http://www.adobe.com/2006/mxml '
layout='absolute '
creationComplete='initApp () '
导入flash.events.event;
import MX.managers.cursor manager;
import MX.RPC.events.result event;
importmx.rpc.events.FaultEvent;
internalfunctioninitApp () :void{
service.getDatas (;
}
internalfunctionresulthandler (evt :结果事件) :void{
CursorManager.removeBusyCursor (;
myList.labelField='username ';
myList.dataProvider=evt.result;
}
internalfunctionfaulthandler (evt :故障事件) :void{
CursorManager.removeBusyCursor (;
trace (故障: ) evt.fault );
}
国际功能选择器(evt :事件) :void{
var user : object=my list.selecteditem;
userPanel.title='详细信息' user.username;
user_txt.text=user.username;
email_txt.text=user.email;
url_txt.text=user.url;
}
中选择所需的墙类型
fault='faultHandler(Event ) '
showBusyCursor='true '
目的=' userservice '
layout='absolute'title='名册'
width='100%'height='100% '
change='选择处理程序(event ) '
height='199'layout='absolute '
horizontal align=' center ' vertical align=' middle '
字体权重=' bold ' /
编码=' utf-8 '?
xmlns 3360 MX=' http://www.adobe.com/2006/mxml ' layout=' absolute '
creationComplete='initApp () '
mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent;
internalfunctioninitapp (: void ) service.getdatas ); }国际
富农足球俱乐部
tion resultHandler(evt:ResultEvent):void{CursorManager.removeBusyCursor(); myList.labelField = "username";
myList.dataProvider = evt.result; } internal function
faultHandler(evt:FaultEvent):void{
CursorManager.removeBusyCursor(); trace("fault:"+evt.fault); }
internal function selectHandler(evt:Event):void{ var user:Object =
myList.selectedItem; userPanel.title = "详细信息"+user.username;
user_txt.text = user.username; email_txt.text = user.email;
url_txt.text = user.url; }
]]>
fault="faultHandler(event)" showBusyCursor="true"
destination="userService">
name="getDatas" result="resultHandler(event)"/>
layout="absolute" title="名册">
height="100%" change="selectHandler(event)">
id="userPanel" x="174" y="32" width="238" height="199"
layout="absolute" horizontalAlign="center"
verticalAlign="middle">
id="user_txt" x="10" y="14" width="83"
fontWeight="bold"/>
id="email_txt" x="13" y="62" width="191"/>
width="191"/>
利用RemoteObject从服务器得到数据,并在Panel中显示出来。
12.在服务器端编写相应的代码,定义一个类DataService为前台提拱服务。类中定义方法getData(),这个方法名与RemoteObject调用的方法函数名相同。上代码:
Java代码
package com.zhan.lcds;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Collection;
public class DataService {
public Collection getDatas(){
System.out.println("come into getDatas");
ArrayList list = new ArrayList();
Map unit;
for(int i=0;i<2;i++){
unit = new HashMap();
unit.put("username", getFirst(i));
unit.put("url", getSecond(i));
unit.put("email", getThird(i));
list.add(unit);
}
System.out.println("get out of getDatas");
return list;
}
private String getFirst(int i){
if(i==1){
return "First 1 迷你的茉莉";
}
else if(i==2){
return "First 2 qcdfh";
}else{
return "first Error";
}
}
private String getSecond(int i){
if(i==1){
return "Second 1 迷你的茉莉";
}else if(i==2){
return "Second 2 qcdfh";
}else{
return "Second Error";
}
}
private String getThird(int i){
if(i==1){
return "Third 1 迷你的茉莉";
}else if(i==2){
return "Third 2 qcdfh";
}else{
return "Third Error";
}
}
}
package com.zhan.lcds;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Collection;
public class DataService {
public Collection getDatas(){
System.out.println("come into getDatas");
ArrayList
list = new ArrayList();
Map
unit;
for(int
i=0;i<2;i++){
unit = new
HashMap();
unit.put("username", getFirst(i));
unit.put("url", getSecond(i));
unit.put("email", getThird(i));
list.add(unit);
}
System.out.println("get out of
getDatas");
return
list;
}
private String getFirst(int i){
if(i==1){
return "First 1
迷你的茉莉";
} else if(i==2){
return "First 2
qcdfh";
}
else{ return "first Error";
}
}
private String
getSecond(int i){
if(i==1)
{
return "Second 1 迷你的茉莉";
}
else if(i==2)
{
return "Second 2 qcdfh";
}
else{
return "Second Error";
} }
private String
getThird(int i)
{
if(i==1){
return "Third 1
迷你的茉莉";
}
else if(i==2)
{
return "Third 2 qcdfh";
}
else
{
return "Third Error";
} }}
13.配置关键的remoting-config.xml文件,它在将复制在WEB-INF的flex目录内
14.在remoting-config.xml中标签之前加入destination信息.
com.zhan.lcds.DataService
15.可以将DemoWeb发布了,发布DemoWeb,最后将已经在FB中编写的mxml拷到发布路径的相应地方即可
16.测试,打开tomcat,输入mxml的路径,tomcat会将它编译
17.搞定
注意的地方:
1.remoting-config.xml中设定的destination
id一定要与flex中请求的id相同
2.调用的方法与服务器提拱的方法也要相同
=============================
LCDS乱码问题
修改mysql服务器配置文件
my.ini [default-chart-set=utf8]
配置远程服务目标:
destination节点的scope属性值可选application 、session 和request ,指定了远程对象实例作用域
request:服务器会为每一次请求 都创建一个远程Java对象实例,默认作用域
session:服务器会为每一个会话
创建一个共享的远程Java对象实例。通常,连接服务器的每一个浏览器实例 构成了一个会话。同一浏览器的不同标签页共享 该远程实例
application:服务器为每一个Flex应用 创建一个远程的Java对象实例
从服务器性能上来说,设置”request“会影响性能
;可以选择设置”session“或者”application“,然后前台每次绑定数据的时候先清空一次 ,即可
限制远程Java对象可访问方法:
见下代码
>
>
com.adobe.ptp.service.GroupService
session