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

 

 

首先下载最新的 BlazeDS

 

http://opensource.adobe.com/blazeds/

 

最新BlazeDS下载地址.

 

http://opensource.adobe.com/wiki/display/blazeds/Release+Builds

 

下面就开始使用flex 创建一个 带java 的web 工程了.

 

创建工程

 

下载的是一个 war 文件..不用解压缩. 这个在创建工程的时候用到.

 


flex 和java 一起开发.实验远程调用._第1张图片

创建一个 flex的工程.
 
flex 和java 一起开发.实验远程调用._第2张图片
 选择 J2EE.
flex 和java 一起开发.实验远程调用._第3张图片

设置 flex 生成文件目录.我是直接修改成WebContent/flex_web文件夹下面

方便flex 编译后 直接放到这个地方.而不用再拷贝一下了.
 
flex 和java 一起开发.实验远程调用._第4张图片

设置flex 源文件 目录.
 
flex 和java 一起开发.实验远程调用._第5张图片


 
flex 和java 一起开发.实验远程调用._第6张图片

 

这样编译后的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 的源文件夹.

 

修改配置编译文件.选择工程属性.

 

添加源文件.

 


flex 和java 一起开发.实验远程调用._第7张图片

然后 修改

 

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)

 


flex 和java 一起开发.实验远程调用._第8张图片

从错误信息可以很明显的发现是 访问不到服务.

 

'http://127.0.0.1:8080/WebContent/messagebroker/amf'"

 

我的tomcat 路径不是这个 .WebContent是文件夹的名字.

 

最后找到问题.

 

修改 工程属性 的 serve 配置.

 


flex 和java 一起开发.实验远程调用._第9张图片

修改了配置文件后. 重新编译 flex 文件.

不知道这个配置文件是否和flex生成的文件有关系.就重新编译了下.

 

访问页面可以调用.

 


flex 和java 一起开发.实验远程调用._第10张图片

显示 是从 java的服务端调用.


总结:

 

工具配置生成.做了好多事情.剩下的就是在.remoting-config.xml里面添加自己的java类.然后在flex里面调用.

 

<mx:RemoteObject id="roHello" destination="helloClass"/> 进行调用下.

这样就可以通信了.工程里面还有几个例子.大同小异.

 

 

你可能感兴趣的:(flex 和java 一起开发.实验远程调用.)