flex打开服务器文件夹,flex+tomcat环境 lcds的配置与使用

本文详细介绍如何在FlexBuilder3和LCDS2.5.1环境下搭建开发环境,包括安装步骤、配置过程及解决乱码问题的方法。

1.我的配置环境为:

flexBuilder3,LCDS251,MyEclipse

5.5.1 GA+

2.安装lcds2.5.1,打开目录,里面有一个flex.war

3.关闭tomcat(如果打开在的话)

4.将flex.war拷入tomcat的webapps目录

5.重启tomcat,可以看到webapps里多了一个目录flex,这便是我们要的东西

6.可以将flex.war删除

7.将flex文件夹拷到其他地方,反正不能在webapps里面。(我也不知道为什么)

8.可以开始了,MyEclipse里新建web

Project(假设名为DemoWeb)

9.打开刚移出去的flex目录,将其中WEB-INF全部复制到工程DemoWeb的WebRoot/WEB-INFO里,点全部,

即覆盖原有文件

9.5.

flex文件夹中有一个jars目录,里面是一些java包,将里面所有jar拷到DemoWeb的WebRoot/WEB-INFO的lib目录中,

//ok,准备工作都做好了,开始可以编写代码测试下

10.flexBuilder中新建flex工程,放心,我们只用来编写mxml文件

11.编写mxml代码,我的代码是:

Java代码

xmlns:mx="http://www.adobe.com/2006/mxml"

layout="absolute"

creationComplete="initApp()">

import flash.events.Event;

import mx.managers.CursorManager;

import mx.rpc.events.ResultEvent;

import mx.rpc.events.FaultEvent;

internal function initApp():void{

service.getDatas();

}

internal function 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">

layout="absolute" title="名册">

width="100%" height="100%"

change="selectHandler(event)">

height="199" layout="absolute"

horizontalAlign="center" verticalAlign="middle">

fontWeight="bold"/>

encoding="utf-8"?>

xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

creationComplete="initApp()">

mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent;

internal function initApp():void{ service.getDatas(); } internal

function 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 Haha";

}

else if(i==2){

return "First 2 HaHa";

}else{

return "first Error";

}

}

private String getSecond(int i){

if(i==1){

return "Second 1 Haha";

}else if(i==2){

return "Second 2 HaHa";

}else{

return "Second Error";

}

}

private String getThird(int i){

if(i==1){

return "Third 1 Haha";

}else if(i==2){

return "Third 2 HaHa";

}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

Haha";

} else if(i==2){

return "First 2

HaHa";

}

else{ return "first Error";

}

}

private String

getSecond(int i){

if(i==1)

{

return "Second 1 Haha";

}

else if(i==2)

{

return "Second 2 HaHa";

}

else{

return "Second Error";

} }

private String

getThird(int i)

{

if(i==1){

return "Third 1

Haha";

}

else if(i==2)

{

return "Third 2 HaHa";

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值