`
Supanccy2013
  • 浏览: 213891 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

flex 之RemoteObject + blazeds 与java服务端通信

    博客分类:
  • Flex
阅读更多
一,blazeds 服务端搭建
1)在eclipse中创建web project
2)下载blazeds.zip
3)把解压后的WEB-INF 和 META-INF 覆盖创建的web project
4)在web project中创建一个远程处理的java 类如:
package net.fleet;
import java.util.List;
import flex.messaging.io.ArrayList;

public class HelloWorld {
	public String say(String name) {
		System.out.println("funck you fuck you");
		return "hello " + name;
	}

	public List<Student> getStudent() {
		List<Student> students = new ArrayList();

		Student student = new Student("chenchaoyang", "635383679@qq.com");
		Student student2 = new Student("chenchaoyang", "635383679@qq.com");

		students.add(student);
		students.add(student2);

		return students;
	}
}

Studetn类就不再次赘述了。
5)配置远程处理java类
WebRoot\WEB-INF\flex\remoting-config.xml在这个文件中添加:
    <destination id="product" channels="my-amf">
        <properties>
            <source>net.fleet.HelloWorld</source>
        </properties>
    </destination>

6)部署项目到tomcat,启动tomcat。至此服务端已经配置完毕。

二:客户端访问两种方式:
1,用标签访问
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<s:RemoteObject id="server" destination="product" result="server_resultHandler(event)" fault="server_faultHandler(event)"/>
		
		<s:RemoteObject id="server2" destination="product" result="getstudent_resultHandler(event)" fault="getstudent_faultHandler(event)"/>
		
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			protected function server_resultHandler(event:ResultEvent):void
			{
			  Alert.show("远程调用成功。。。。" + event.result,"提示");
			}
			
			protected function server_faultHandler(event:FaultEvent):void
			{
			  Alert.show("远程调用失败。。。。" + event.fault.toString(),"提示");
			}
			
			protected function button1_clickHandler(event:MouseEvent):void
			{
			  server.say("chenchaoyang!");
			}
			
			protected function getstudent_resultHandler(event:ResultEvent):void
			{
				Alert.show("远程调用成功。。。。" + event.result,"提示");
				
				dg.dataProvider = event.result;
			}
			
			protected function getstudent_faultHandler(event:FaultEvent):void
			{
				Alert.show("远程调用失败。。。。" + event.fault.toString(),"提示");
			}
			protected function getstudent_clickHandler(event:MouseEvent):void
			{
				server2.getStudent();
			}
		]]>
	</fx:Script>
	
	<mx:DataGrid y="156" width="674" height="357" horizontalCenter="0" id="dg">  
		<mx:columns>  
			<mx:DataGridColumn headerText="ID" dataField="name"/>  
			<mx:DataGridColumn headerText="Name" dataField="email"/>  
		</mx:columns>  
	</mx:DataGrid>
	
	<s:Button x="390" y="198" width="214" height="93" label="按钮" click="button1_clickHandler(event)"/>
	
	<s:Button x="490" y="298" width="214" height="93" label="获取学生列表" click="getstudent_clickHandler(event)"/>
</s:Application>


2,手动创建remoteObject对象,并设置其相关属性访问
package com.superwulei.model
{
	import com.superwulei.model.vo.UserVO;
	import mx.collections.ArrayCollection;
	import mx.rpc.remoting.RemoteObject;
	import org.puremvc.as3.patterns.proxy.Proxy;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.messaging.Channel;
	import mx.messaging.ChannelSet;
	import mx.messaging.channels.AMFChannel;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.remoting.RemoteObject;
	import mx.utils.ObjectProxy;

	public class UserProxy extends Proxy
	{
		private static var channel:Channel;
		
		public static const NAME:String = 'UserProxy';
		
		public function UserProxy()
		{
			super(NAME,new ArrayCollection());
		}
		
		public function get users():ArrayCollection{
			return data as ArrayCollection;
		}
		
		/* 添加项 */
		public function addItem(item:Object):void{
			
			if(channel == null)
			{
				channel = new AMFChannel("my-amf", "http://localhost:8080/111/messagebroker/amf");
			}
			var service:RemoteObject = new RemoteObject();
			var cs:ChannelSet = new ChannelSet();
			cs.addChannel(channel);
			service.channelSet = cs;
			service.destination = "product";
			service.addEventListener(FaultEvent.FAULT,showError);
			
			service.say("chenchaoyang!");
			
			users.addItem(item);
		}
		
		/* 删除项 */
		public function deleteItem(item:Object):void{
			var user:UserVO = item as UserVO;
			for(var i:int = 0; i < users.length; i++){
				if(users[i].email == user.email){
					users.removeItemAt(i);
				}
			}
		}
		
		private static function showError(e:FaultEvent):void {
			Alert.show(String(e.fault.message), "错误");
		}
	}
}



分享到:
评论

相关推荐

    flex3(remoteobject+datagrid+.....)+java+oracle源代码

    flex3(remoteobject+datagrid+.....)+java+oracle源代码

    flex+java+remoteObject

    两个项目,flex + java + RemoteObject,实现一个简单的RemoteObject通信案例

    flex中RemoteObject与java的通信

    flex中RemoteObject与java的通信,其中有详细的步骤和代码,照着做能实现功能,对初学者很有用

    flex4与Java通信实例

    flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.... 1 flex 与普通java类通信RemoteObject 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService

    flex remoteObject封装后和java通信

    使用封装后的RemoteObject和java通信,以blazeds做为第三方软件,上传的是一个Demo实例

    Flex + LCDS + Java 入门教程--电子书教程(Flex Builder)

    本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。

    flex使用 RemoteObject 与java进行json格式的数据交互

    flex使用 RemoteObject 与java进行json格式的数据交互

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

    &lt;br&gt; 本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一...

    flex与java的通信 Blazeds remoteObject

    NULL 博文链接:https://yjck.iteye.com/blog/765169

    Flex+Lcds+FB3+Java+MyEclipes7.5

    他是基于java(也有ColdFusion版的)后端的数据服务工程,功能包括映射Java对象到Flex对象(包括调用Java类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF等等功能,详细请参考LCDS里的说明。...

    \Flex.LCDS.Java入门教程\Flex + LCDS + Java 入门教程

    入门教程,图文并茂 主要介绍如何建立FlexLCDS工程,及相关配置。 主要如何用remoteObject来连接实现Flex与Java的通信 自己是初学者,看着觉得挺容易上手的,就推荐下了。

    Flex + LCDS + Java 入门教程

    本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。

    flex remoteobject调用java服务

    eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径

    Flex + LCDS + Java 利用Eclipse Plugin开发Flex入门教程

    本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一。...

    flex4 remoteobject 多文件上传的例子

    flex4 中,用remoteobject 实现多文件上传的例子,有进度展示

    Flex+LCDS+Java入门教程

    本教程通过图文介绍和对一些关键性的地方进行解释,让大家了解如何新建FLEX的LCDS工程,并利用工具快速整合和部署J2EE的项目和LCDS项目,掌握了简单的请求RemoteObject和配置的方法,初步掌握LCDS的应用之一

Global site tag (gtag.js) - Google Analytics