Flex Data Services2安装及使用亲历

国庆闲来无事,拿出原来下来的FDS(Flex Data Service,现改名为LiveCycle Data Services)的Express版安安,顺便编点儿小程序,期望能体验一下FDS2.0及AS3.0的改进所带来的一些快感。
本以为有丰富Flex1.5编程经验的我会信手拈来,没想到还是碰到了不少的麻烦事,把此次经历记录下来,也好给大伙儿一个借鉴。
首先介绍一下我的环境:
操作系统:Windows Vista HomeBase(笔记本上自带的)
Eclipse:3.3
数据库:MS SQL Express
应用服务器:JBoss4.0.5GA
登录用户:Administrator(主要是嫌Vista的UCA控制麻烦)
呵呵,全是正版或是免费的,这年头不太赶用盗版的,怕麻烦。
首先下一个FlexBuilder2.01,安上,试用31天,呵呵,先试着用吧,反正又不真用这个来编程。
首次安装就出现问题了,呵呵,解压后提示用户不属于PowerUser组,第一次就碰了个钉子。点右键,以管理员身份运行,OK,可以安装了。
为了能够享受Eclipse中的各项功能,故选择PlugIn方式安装。选择Eclipse目录时安装过不去,虽然当时的安装界面上的提示是3.1或以上版本的Eclipse,看来还只能是用Eclipse3.1版的才行。
没办法,又下了一个Eclipse3.1.2,另外下了个Lomoboz插件(主要为后面可以创建动态Web工程时用)。一切OK,顺利安完。
第一步就有点儿不太顺,看来下一步就更要小心了。
运行FlexBuilder,在Licence界面上点Try,反正试用嘛,倒也无所谓了。
一切正常,安装成功。
现在开始进入主题了,安装FDS,选择安装至J2EE服务器选项,一切正常,顺利安装完成。虽然是双核CPU,但运行Express版的FDS时倒也不会有什么问题。
下一步要配FDS环境到服务器上了,根据安装教程将flex-tomcat-common.jar及flex-tomcat-server.jar文件复制到Jboss安装目录下的Server/Default/lib目录下。
把Flex.war,Flex-admin.war及Samples.war文件复制入Server/Default/deploy目录下。
OK,Run启动应用服务器。
¥%……%——……%,一堆的异常。
还是慢慢来吧,首先是初始化失败,java.lang.NoSuchFieldError: ANY_HOST_CONFIGURATION。
这是怎么回事儿呢?Google了一番,说是Common-httpclient.jar文件的版本太低了。OK,上Apache站点上下个最新的来,替换掉Flex.war和Samples.war中的文件。
热部署,问题依旧。:(。干脆一不做二不休,备份好JBoss服务器中的相关内容后,连着Default/lib中的相关文件也替换了。
还是不行……
重装一下试试,这回选择集成JRun版本。安装完成,运行JRun,通过Http://localhost:8700/Flex验证安装结果,一切正常。看来问题还是出在Common-httpclient.jar身上。
复制出Flex.war中的Common-httpclient.jar文件,替换了Jboss中Client目录及Default/lib目录下的相关文件。
重启服务器。终于正常了。:)
看来,Java的Jar问题跟MS当年的DLL问题一样严重啊。
开始做点东西玩玩。打开FlexBuilder
1.新建一个动态WEB工程;
2.将Flex的WEB-INF和META-INF文件导入当时工程;
3.在工程名中点击右键,选择Flex Project Nature菜单,因为习惯在Server端编译MXML文件(图改起来和部署方便),故而选择Add Flex Project Nature(Compile on server)选项。
OK,一切就绪。
先写个连接程序。
建立一个数据库包zag.db,写入相应的ConnectionDB类,主要就是返回个数据库连接。
建立一个数据库应用包zag.usedb,写入相应的FindPY类,主要是通过数据库连接返回个表的全部内容。
代码如下:
public class FindPY {
 public List getFindPY() throws Exception{
  ArrayList alret=new ArrayList();
  Connection conn=ConnectionDB.getConnection();
  try{
   Statement st=conn.createStatement();
   ResultSet rs=st.executeQuery("select CHINESE,LETTER from tabfindpy");
   while(rs.next()){
    HashMap hm=new HashMap();
    hm.put("chn",rs.getString(1).trim());
    hm.put("letter",rs.getString(2).trim());
    alret.add(hm);
   }
   if(rs!=null)rs.close();
   if(st!=null)st.close();
  }catch(Exception ex){
   ex.printStackTrace();
  }finally{
   if(conn!=null)conn.close();
  }
  return alret;
  
 }
}
因为这张表是一张引用表,习惯了用EJB3的那套来做了,所以用了一个HashMap来接收相应的值,这样做主要是返回值可以十分方便的组合成Array,可以在前台编程中省去不少麻烦。
OK,在WebConcent目录下新建一个FlexApplication,取名Test01,在新建时最好不要自动转换到FlexBuilder视图,把Flex的几个窗口在J2EE视图下打开,这样编程和前台设计都方便。
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:RemoteObject destination="findpy" id="fp" showBusyCursor="true" >
 <mx:method name="getFindPY" result="getFP(event);" />
</mx:RemoteObject>
<mx:Script>
 <![CDATA[
  import mx.rpc.events.ResultEvent;
  import mx.controls.Alert;
  private function getFP(event:ResultEvent):void{
   var res:Object=event.result;
   dgFP.dataProvider=res;
  }
 ]]>
</mx:Script>
 <mx:DataGrid id="dgFP" x="10" y="36" width="596" height="315">
  <mx:columns>
   <mx:DataGridColumn headerText="chn" dataField="chn"/>
   <mx:DataGridColumn headerText="letter" dataField="letter"/>
  </mx:columns>
 </mx:DataGrid>
 <mx:Button x="10" y="10" label="检索" click="fp.getFindPY();"/>
 
</mx:Application>
这回就要配置RemoteObject引用了。打开WEB-INF/Flex目录下的remoting-config.xml文件。在其中加上:
     <destination id="findpy">
  <properties>
   <source>zag.testdb.FindPY</source>
  </properties>
 </destination>
OK,增加JBoss服务器。右键单击工程,选择Run As下的Run on Server,部署,运行……
系统将出现如下界面。 

OK,点击检索按钮。呵呵,结果出来了。终于搞定了。
通过以上方法来创建工程,最大的好处是即可以保持原来WEB开发的习惯,同样也可以使用FlexBuilder所见即所得的编辑功能。
希望这些经历能对Flex2的使用者们有些帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值