`

BlazeDS的初步使用

    博客分类:
  • Flex
阅读更多

刚接触这东西的时候去网上了解了哈,BlazeDS用于flex和J2EE交互,首先下载blazeds-bin-3.2.0.3978.zip (4.3 MB) ,对源码感兴趣的可以附加源码后看,当然这个不是最新的,解压后里面有两个文件,使用的是blazeds.war,在对blazeds.war直接解压,解压后有META-INF和WEB-INF两个目录,新建一个HelloWorld的web项目,如图:

 


 
 我在lib目录下面新建了一个flex文件夹,便于管理哈,不是必须的,直接将blazeds.war解压后的WEB-INF里面的lib里面所有jar放入flex文件夹中,在将WEB-INF里面的flex文件夹放入Helloworld项目的WEB-INF下面,该文件夹里面有4个配置文件:messaging-config.xml,proxy-config.xml,remoting-cofig.xml,services-config.xml

接着讲blazeds.war解压后的WEB-INF里面web.xml替换掉Helloworld里面的web.xml,当然也可以把内容复制过去。

这样java端就配置好了,感觉和struts等框架的配置过程差不多,新建一个HelloWorldBiz类,里面有两个方法给flex调用测试的,代码如下:

package org.story.xxxx.biz;

import java.util.ArrayList;
import java.util.List;

import org.story.xxxx.entity.User;

public class HelloWorldBiz {

	public String sayHelloWorld(String username) {
		System.out.println("HelloWorldBiz.sayHelloWorld()");
		return "欢迎你:" + username;
	}

	public List getList() {
		System.out.println("HelloWorldBiz.getList()");
		List list = new ArrayList();
		for (int i = 0; i < 10; i++) {

			list.add(new User(i, "chenjun" + i, "password" + i));
		}

		return list;
	}
}

 在建一个实体作为测试用的,代码如下:

package org.story.xxxx.entity;

public class User {

	private int id;
	private String username;
	private String password;

	public User() {
	}

	public User(int id, String username, String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

 

 现在配置flex文件夹下面的remoting-config.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    
  	<destination id="helloWorldBiz">
  		<properties>
  			<source>org.story.xxxx.biz.HelloWorldBiz</source>
  		</properties>
  	</destination>
</service>

 自此需要测试的东西都准备好了。

 现在创建flex项目,第一步如图:




 
 

注意所选服务为J2EE,下一步如图:




 
 Root folder:定义为server端程序的发布路径,就是HelloWorld项目部署到tomcat下面的webapps路径

Root URL:定位为server端程序的URL访问路径,虚拟路径,最好前面要指明是属于哪个项目下的

Context root:上下文根目录,就是HelloWorld项目名字

Output folder:输出文件夹,该文件夹类似于开发jspWebRoot下面的一个文件夹而已。

组后点击Validate configuration,测试哈时候通过。finish,如图:



  

 

FlexHelloWorld.mxml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			import mx.rpc.remoting.mxml.RemoteObject;
			
			//声明一个远程对象
			private var remote:RemoteObject = new RemoteObject();
			
			//初始化远程对象信息 
			public function init():void{
				//指定要调用的java类,就是remoting-config.xml里面配置的那个东西
				remote.destination="helloWorldBiz";
				//以下是对两个方法注册结果事件的回调
				remote.sayHelloWorld.addEventListener(ResultEvent.RESULT,doHelloWorld);
				remote.getList.addEventListener(ResultEvent.RESULT,doGetList);
			}
			
			public function doHelloWorld(event:ResultEvent):void{
				//将结果显示在文本框中
				txtSay.text = event.result.toString();
				
			}
			
			public function doGetList(event:ResultEvent):void{
				//将后台返回的list直接绑定到dataGrid上面去
				dataGrid.dataProvider = event.result;
			}
		]]>
	</mx:Script>
	<mx:Button x="10" y="10" label="sayHelloWorld" click="remote.sayHelloWorld('chenjun');"/>
	<mx:Button x="10" y="40" label="getList" click="remote.getList();" width="108"/>
	<mx:DataGrid x="126" y="39" width="309" height="202" id="dataGrid">
		<mx:columns>
			<mx:DataGridColumn headerText="id" dataField="id"/>
			<mx:DataGridColumn headerText="username" dataField="username"/>
			<mx:DataGridColumn headerText="password" dataField="password"/>
		</mx:columns>
	</mx:DataGrid>
	<mx:TextInput x="126" y="10" width="266" id="txtSay"/>
</mx:Application>

 至此就完成flex项目,启动tomcat,在运行FlexHelloWorld,点击页面上的两个方法,返回结果,说明成功交互。

没什么技术含量,为了让大家少走弯路,和大家一起分享。源代码BlazeDS的初步使用源码.rar (4.7 MB)

  • 大小: 6.2 KB
  • 大小: 37.2 KB
  • 大小: 53.5 KB
  • 大小: 50.5 KB
分享到:
评论
1 楼 djb_daydayup 2010-09-14  
学习了,谢谢。。。
je需要这样的新手指导文章

相关推荐

Global site tag (gtag.js) - Google Analytics