您的位置:首页 > 编程语言 > Java开发

flex 和java 一起开发.实验远程调用.

2014-11-14 00:00 393 查看
首先下载最新的 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也一起拷贝过来了.

然后启动tomcat.6.0

就可以访问.

运行远程调用.


然后引用 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"/> 进行调用下.

这样就可以通信了.工程里面还有几个例子.大同小异.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: