flex 和java 一起开发.实验远程调用.
? ? 首先下载最新的 BlazeDS ? http://opensource.adobe.com/blazeds/ ? 最新BlazeDS下载地址. ? http://opensource.adobe.com/wiki/display/blazeds/Release+Builds ? 下面就开始使用flex 创建一个 带java 的web 工程了. ? 创建工程 ? 下载的是一个 war 文件..不用解压缩. 这个在创建工程的时候用到. ? 创建一个 flex的工程. ?选择 J2EE. 设置 flex 生成文件目录.我是直接修改成WebContent/flex_web文件夹下面 方便flex 编译后 直接放到这个地方.而不用再拷贝一下了. 设置flex 源文件 目录.
? 这样编译后的flex 就放到 WebContent下面的flex_web文件夹了. 而编译后的java 还放到 WEB-INF/classes文件夹下面. 并且在war里面的lib也一起拷贝过来了.
? 就可以访问. 运行远程调用. 然后引用 flex 开发宝典的例子.
? http://as.wiley.com/WileyCDA/WileyTitle/productCd-0470287640,descCd-DOWNLOAD.html?filter=DOWNLOAD ? 第 chapter24 的源文件夹. ? 修改配置编译文件.选择工程属性. ? 添加源文件. ? 然后 修改 ? remoting-config.xml ? 添加 <destination id="helloClass"> <properties> <source>flex3Bible.ROService</source> <scope>application</scope> </properties> </destination> ? 添加一个远程访问的类. ? 类就是一个普通的pojo类. ? public class ROService { public ROService() { System.out.println("初始化类."); } public String helloWorld() { System.out.println("函数被调用."); return "Hello from the world of Java"; } ... flex调用代码: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#EEEEEE"> <mx:Script> <![CDATA[ import mx.rpc.remoting.mxml.Operation; private function callIt():void { var op:Operation = roHello.getOperation("helloWorld") as Operation; op.send(); } ]]> </mx:Script> <mx:RemoteObject id="roHello" destination="helloClass"/> <mx:Label text="Hello from BlazeDS!" fontSize="14" fontWeight="bold"/> <mx:Button label="Click to say hello" click="callIt()"/> <mx:Label text="{roHello.helloWorld.lastResult}" fontSize="14" fontWeight="bold"/> </mx:Application>? ? ?然后访问 tomcat 地址: ? http://127.0.0.1:8080/chapter24_test/flex_web/CallOperation.html ? 发现调用不成功.弹出 debug 错误信息. (ie 下面安装了 flashplayer_10_ax_debug) ? 从错误信息可以很明显的发现是 访问不到服务. ? 'http://127.0.0.1:8080/WebContent/messagebroker/amf'" ? 我的tomcat 路径不是这个 .WebContent是文件夹的名字. ? 最后找到问题. ? 修改 工程属性 的 serve 配置. ? 修改了配置文件后. 重新编译 flex 文件. 不知道这个配置文件是否和flex生成的文件有关系.就重新编译了下. ? 访问页面可以调用. ? 显示 是从 java的服务端调用.
总结: ? 工具配置生成.做了好多事情.剩下的就是在.remoting-config.xml里面添加自己的java类.然后在flex里面调用. ? <mx:RemoteObject id="roHello" destination="helloClass"/> 进行调用下. 这样就可以通信了.工程里面还有几个例子.大同小异. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |