Flex访问Oracle数据库------ RemoteObject方法-------
由于Flex不能直接与Oracle数据库进行通信,所以采用借助Java以RemoteObject方式连接数据库:
所需安装程序如下:(Flash Builder和数据库Oracle是必须事先安装好的,我用的是 Flash Builder 4和Oracle10g)
1. Tomcat(做服务器用的);
- JDK(编译java程序用的,还要配置环境变量);
- LCDS(就是升级之后的FDS(Flex Data Service));
- JOTM(Java Open Transaction Manager,让tomcat和LCDS共同工作的桥梁);
下面介绍一下软件的安装顺序和具体配置:
一.安装Tomcat:我下载的是apache-tomcat-6.0.32-windows-x86.zip这个版本,直接解压之后得到apache-tomcat-6.0.32文件夹。不用安装什么,直接把这个文件夹放置在某个盘下面即可。(比如:我就放在D:\apache-tomcat-6.0.32);以tomcat放在D:\apache-tomcat-6.0.32为例,点击D:\apache-tomcat-6.0.32\bin\startup.bat即可启动tomcat,点击D:\apache-tomcat-6.0.32\bin\shutdown.bat即可关闭tomcat。Tomcat安装完毕!
二.安装JDK:我下载的是jdk-6u24-windows-i586.exe这个版本。直接双击开始安装。再安装的过程中记住一点:安装文件的存放目录中千万不要用空格和其他特殊字符,最好全部是由数据,字符,下划线组成,否则设置环境变量之后编译Java文件(进入Dos界面:输入java –version可检验JDK是否安装成功。若出现JDK版本则说明安装成功。在Dos界面输入:javac xxxx.java可以编译java程序)时提示:javac不是外部或者内部的命令,其实就是提示你系统找不到JDK的安装路径!设置环境变量(以我机器上JDK的安装路径D:\Java\jdk1.6.0_24为例):再系统变量下面点击“新建”按钮,分别新建三个变量,第一个:(PATH= D:\Java\jdk1.6.0_24\bin;);
第二个:(CLASSPATH= D:\Java\jdk1.6.0_24\lib; D:\Java\jdk1.6.0_24\lib\tools.jar; D:\Java\jdk1.6.0_24\lib\dt.jar;);第三个:(JAVA_HOME= D:\Java\jdk1.6.0_24)。JDK安装设置完毕!
三.LCDS安装:我下载的是lcds31-win这个版本。直接双击开始安装,再安装界面左边“Installation Options”高亮时,选择右边最下面的单选按钮J2EE Web application选项即可。安装完毕之后(以我的安装文件存放目录D:\lcds为例),将D:\lcds目录下面的lcds.war,lcds-samples.war,ds-console.war三个文件拷贝到Tomcat的webapps文件夹下面。然后启动Tomcat,会看到webapps文件夹下面多了三个文件夹(分别是:lcds,lcds-samples,ds-console三个文件夹)然后再浏览器中输入:http://localhost:8080/lcds-samples/,就会看到LCDS的示例页面。LCDS安装和配置完毕!
四.JOTM安装:我下载的是jotm-2.0.11.MR5.tgz这个版本。解压之后得到jotm-2.0.11.MR5文件夹,把文件夹下面lib中的13个jar文件全部拷贝到Tomcat的lib文件夹下面。JOTM安装完毕!
五.JDBC驱动正确配置:其实安装Oracle的时候在其安装文件中就已经包含访问oracle数据库的驱动JDBC了。具体位置在(以我机器上安装oracle的目录E:\oracle为例),在目录E:\oracle\product\10.2.0\db_1\jdbc\lib下面有一个ojdbc14.jar文件,将其复制之后安置到Tomcat(安装目录D:\apache-tomcat-6.0.32)的D:\apache-tomcat-6.0.32\lib这个文件夹下面,这样JDBC驱动配置OK!
六. 配置文件:(D:\apache-tomcat-6.0.32\webapps\lcds\WEB-INF\flex\remoting-config.xml)用记事本打开这个xml文件,然后输入
<destination id="userService"> id代表一个服务标识符,名字可以随便设定!
<properties>
<source>tree.javatestData</source>
</properties>
</destination>
tree.javatestData代表javatestData类位于tree文件夹下面,因为我将javatestData.class文件放在了:D:\apache-tomcat-6.0.32\webapps\lcds\WEB-INF\classes\tree下面。每次修改配置文件之后都要重启Tomcat。
七.新建工程:再flash builder中点击:File -> New -> Flex Project ,弹出 界面如下:
点击Next弹出界面如下:
按照上面这个界面输入Root folder ,Root URL,Context root。(前提是已经把lcds和tomcat已经都安装和配置好了!)这样新建的工程就建成了!
如果新建项目之后运行的时候出现错误:创建FLex项目时候的 Cannot access the web server. The server may not be running, or the web root folder or root URL may be invalid.错误
解决办法:先启动Tomcat,然后创建新的工程,问题应该可以解决!
在新建的工程中写下如下代码:
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<mx:RemoteObject id="service" fault="faultHandler(event)" result="resultHandler(event)" showBusyCursor="true" destination="userService">
</mx:RemoteObject>
</fx:Declarations>
注意:id="service"代表RemoteObject对象的的名字为service,可以随便设定。成功返回RemoteObject对象之后调用resultHandler(event)函数,失败调用faultHandler(event)函数。
八、针对flex界面中的表格数据批量保存到数据库的解决方案:
这里用到了JSON(json-lib-2.4-jdk15.jar)以及其依赖的5个包(1. commons-beanutils-1.8.2-bin;2. commons-collections-3.2.1-bin;3. commons-lang-2.6-bin;4. commons-logging-1.1.1-bin;5. ezmorph-1.0.6.jar;6. xom-1.1.jar).将蓝色的1,2,3,4包中的jar全部导入到eclipse里面,这样后台java程序就可以使用json了;要使flex中可以使用json,还必须一个库文件as3corelib-.93,将其中的as3corelib.swc库文件导入工程目录下的libs下面,同时在需要用到json的flex页面中import import com.adobe.serialization.json.*;
具体如何使用json可以参考下面的网址:
http://blogold.chinaunix.net/u/21684/showart_732957.html。