`

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需要这样的新手指导文章

相关推荐

    Flex4与JavaWeb工程基于Blazeds初步整合

    NULL 博文链接:https://zz8.iteye.com/blog/976401

    Flex + LCDS(Blazeds) + Java 入门教程

    【Flex + LCDS(Blazeds) + Java 入门教程】是一篇旨在引导初学者了解如何构建基于Flex、LCDS(LiveCycle Data ...通过学习这篇教程,开发者可以对LCDS的应用有初步的理解,并能够构建基本的Flex与Java后端通信的应用。

    flex 初步认识 初学者的必读

    本篇文章将带你初步了解Flex,并为初学者提供一些必要的学习指南。 Flex的主要目标是简化用户界面的开发,使开发者能够创建具有丰富交互性和动态视觉效果的Web应用。它提供了强大的组件库,可以用来快速构建常见的...

    深入浅出Flex,经典教程

    “Blazeds初步.doc”则是针对初学者的基础教程,涵盖了BlazeDS的基本概念、安装步骤以及简单的示例,帮助新手快速上手。 “FlexJ2eeDemo.mxml”是一个实际的Flex项目示例,展示了如何在Java EE环境中开发Flex应用...

    flex与java的整合教程

    通过以上步骤,你就成功地实现了Flex与Java的初步整合。在实际项目中,这种集成可以扩展到更复杂的业务逻辑和数据交换,BlazeDS还支持AMF(Action Message Format)协议,提供高效的数据序列化,进一步提高通信性能...

    flex_lcds_java.rar_flex

    描述中提到“flex的网络通讯lcds教程,适合初步接触flex网络编程人员”,这表明这个教程主要面向初学者,旨在教授如何利用Flex和LCDS实现网络通信,以便在Flex前端和Java后端之间传输数据。 在标签中,“flex”再次...

    Flex3学习指南-是初学者学习Flex必备资料,这是第一套

    这将涉及到XML、JSON和其他数据格式的解析,以及如何使用 BlazeDS 或 LiveCycle Data Services 实现数据推送。 随着学习的深入,你可能会接触到Flex的图形和动画功能,如使用Sprite和Shape类创建自定义图形,或者...

    flex-超好的flex学习资料

    书中通过多个章节,如《Flex和Java通信之BlazeDS》、《Flex+LCDS(BlazeDS)+Java开发》,系统地介绍了Flex与Java之间的数据交换方式,包括AMF协议、RemoteObject的使用,以及如何通过BlazeDS等中间件实现Flex与Java...

Global site tag (gtag.js) - Google Analytics