`
raymond.chen
  • 浏览: 1436899 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex RPC服务组件的使用

阅读更多

       Flex RPC服务组件包括三种服务组件:WebService、HttpService、RemoteObject。RPC服务组件包含在Flex SDK和Flex Data Service(现改名为LiveCycle Data Services,简称LCDS)中。只有在Flex Data Service中才可以使用RemoteObject组件,在Flex SDK中不能使用该组件。

 

一、WebService组件的使用

<!-- 如果Flex应用在Flex SDK环境下使用RPC,则useProxy属性值必须为false -->
<mx:WebService id="web" wsdl="http://localhost:8090/dcms/ws/webservice.jws?wsdl" 
	useProxy="false" showBusyCursor="true"/>

<mx:Button id="start" x="10" y="277" label="WebService数据" click="loadWebServiceData()"/>

//通过WebService组件获取数据
private function loadWebServiceData():void{
	web.getNextSequenceId("SmSApplyForm");
	txt1.text = web.getNextSequenceId.lastResult.toString();
}

 

二、HttpService组件的使用

     1、组件配置

<mx:HTTPService id="http" url="../test.jsp" 
	result="resultHandler(event)"
	fault="faultHandler(event)"
	resultFormat="text"
	method="POST"
	useProxy="false" showBusyCursor="true">

       <!-- 需要传递到服务端的参数 -->
	<mx:request xmlns="">
		<username>uid</username>
		<password>pwd</password>
	</mx:request>

</mx:HTTPService>

 

         提交服务:http.send();

 

     2、返回数据处理

           1、当返回string格式的数据时,resultFormat属性值应设为“text”,获取返回值的方法为:

                event.result.toString()

 

           2、当返回xml格式的数据时,resultFormat属性值应设为“e4x”,数据处理以及异常处理的代码为:

//成功返回数据后触发该方法
private function resultHandler(event:ResultEvent):void{
	var xml:XML = XML(event.result);
	txt1.text = xml.username;
}

//获取数据失败时触发该方法
private function faultHandler(event:FaultEvent):void{
	var fault:Fault = event.fault;
	var s:String = (fault.faultDetail!=null) ? fault.faultDetail : fault.faultString;
	Alert.show(s);
}

 

               数据提供页面的源码:

<%@page language="java" contentType="text/html; charset=utf-8"%>
<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
%>
<?xml version="1.0" encoding="UTF-8"?>
<user>
	<username><%=username%></username>
	<password><%=password%></password>
</user>

 

           3、当返回json格式的数据时,resultFormat属性值应设为“text”,数据处理的代码为:

private function resultHandler(event:ResultEvent):void{
	var s:String = String(event.result);
	s = s.replace(/\s/g, ''); //去掉所有前后空白符
	var obj = JSON.decode(s);
	txt1.text = obj.username;
}

 

            数据提供页面的源码:

                   注意:key和value必须要用双引号(")括起来。

<%@page language="java" contentType="text/html; charset=utf-8"%>
<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
%>
{"username":"<%=username%>", "password":"<%=password%>"}

 

三、RemoteObject组件的使用

      1、组件在mxml文件中的配置

<mx:RemoteObject id="ro" destination="remoteObjectService" fault="faultEvent(event)">
	<mx:method name="sayHello" result="resultEvent(event)">
		<mx:arguments>
			<arg>{txt1.text}</arg>
		</mx:arguments>
	</mx:method>
</mx:RemoteObject>

          destination:RPC服务接收点的ID。

          fault:调用服务出现异常时触发指定的方法。

          result:调用RPC服务成功返回后触发指定的方法。

 

       2、ActionScript代码

<mx:Script>
	<![CDATA[	
		//方法调用	
		private function show():void{
			ro.sayHello();
		}
		
		//结果处理
		private function resultEvent(event:ResultEvent):void{
			var s:String = String(event.result);
			txt2.text = s;
		}
		
		//异常处理
		private function faultEvent(event:FaultEvent):void{
			var fault:Fault = event.fault;
			var s:String = (fault.faultDetail!=null) ? fault.faultDetail : fault.faultString;
			txt2.text = s;
		}
	]]>
</mx:Script>

 

    通过AS代码调用方法:

var oper:Operation = ro.getOperation("staticMethod") as Operation;
oper.addEventListener(ResultEvent.RESULT, resultEvent);
oper.send("ddddd");

 

        3、在remoting-config.xml文件中增加以下配置信息:

<!-- RPC服务接收点 -->
<destination id="remoteObjectService">
	<properties>
		<source>com.cjm.flex.RemoteObject</source>
	</properties>
</destination>

 

        4、Java源码

package com.cjm.flex;

public class RemoteObject {
	public String sayHello(String username)throws RuntimeException{
		return "Hello " + username;
	}
}

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    Flex在线翻译和手机归属地查询(源码)

    关键知识点包括Flex的RPC服务组件以及与Web服务的交互。 一、Flex RPC服务组件 RPC(Remote Procedure Call)远程过程调用是Flex中用于与服务器进行数据交互的重要工具。在本项目中,我们使用的可能是Flex的AMF...

    flex使用web服务写的天气预报

    在Flex中,可以使用`mx.rpc`包下的类来处理远程调用,如`HTTPService`或`WebService`,它们都提供了异步调用Web服务的方法。`HTTPService`适用于RESTful API,而`WebService`则用于SOAP服务。在ActionScript代码中,...

    Flex的LCDS服务器架构

    不同类型的Flex组件使用不同类型的消息与LCDS服务端对应的服务进行通信。例如,确认消息(AcknowledgeMessage)和命令消息(CommandMessage)在多个组件和服务器间通用,而AsyncMessage通常由Producer组件用于向订阅...

    Flex调用Webservice及java程序

    在本主题中,我们将深入探讨如何使用Flex调用Web服务,尤其是与Java程序的交互。 1. **Flex与Web服务的交互** Flex可以通过SOAP(简单对象访问协议)或AMF(动作消息格式)来调用Web服务。SOAP是一种基于XML的通信...

    Flex Service

    在Flex中,我们可以使用 mx.rpc.soap.* 命名空间中的类来调用SOAP服务。例如,使用WebService类,开发者可以定义服务端的WSDL(Web服务描述语言)URL,然后调用其方法获取数据。Flex自动处理XML到ActionScript对象的...

    flex操作数据库, flex操作本地sql数据库

    3. 连接服务:使用RemoteObject组件连接到LCDS服务。配置其endpoint属性指向LCDS服务的URL,以及method属性指定数据库操作方法。 四、执行数据库操作 1. 查询数据:通过调用RemoteObject的send方法,可以执行SQL...

    java 中使用Flex的HttpService的详细配置

    - 引入`mx.rpc.http.HTTPService`组件到Flex项目中。 - 创建HttpService实例,设置其`URL`属性指向Java服务的URL。 - 配置`method`属性为POST,因为AMF通常使用POST方法传输数据。 - 使用`result`和`fault`事件...

    Spring 整合 Flex 包

    通过使用 Spring BlazeDS Integration,可以轻松地在 Flex 客户端和 Spring 服务之间建立双向数据绑定,实现高效的远程调用(Remote Procedure Call,RPC)机制。 Spring Flex 提供了以下关键组件和特性: 1. **...

    Flex技术简介PPT

    BlazeDS是Adobe提供的一个开源服务器端项目,它允许Flex客户端与Java后端进行双向通信,实现AMF(Action Message Format)数据交换,提供实时的远程方法调用(RPC)和消息推送服务。 8. Flex与移动设备 随着Adobe...

    flex请求webservice

    在Flex中,我们可以使用WebService组件来连接和调用Web服务。这个组件提供了与ASMX、WSDL等不同类型的Web服务接口的交互能力。首先,我们需要在Flex项目中导入Web服务的WSDL(Web Service Description Language)...

    flex 教程 完整版 速学版

    Flex教程 完整版 速学版概述 ...通过这个"Flex 教程 完整版 速学版",开发者可以系统地学习Flex的基本概念、语法、组件使用以及与Java的集成,从而迅速掌握Flex开发技能,创建出功能丰富、用户体验优良的Web应用程序。

    flex 分页

    在Flex中,可以使用`mx.controls.Pagination`类或者自定义分页组件来实现高级功能,例如动态加载数据、显示页码选择器等。同时,还可以利用`mx.rpc.events.ResultEvent`和`mx.rpc.events.FaultEvent`处理服务端数据...

    flex_lcds_java.rar_flex

    6. **Java集成**:通过LCDS,Flex可以直接调用Java的远程方法(RPC),使用JavaBeans或EJB作为数据源,或者将Java集合暴露给Flex客户端。 7. **数据推送**:LCDS支持双向通信,允许服务器主动向客户端推送数据,这...

    Flex4之DataGrid四个的示例【客户端和服务器端】

    通过使用`mx.rpc.json.util.JSONUtil`或`flex.utils.JSON`,可以将服务器返回的JSON字符串转换为ActionScript对象,然后绑定到DataGrid的数据提供者。例如,一个常见的场景是,从服务器获取JSON数据,解析后填充到...

    flex 工具 blazeds

    BlazeDS是Flex的配套服务器组件,它允许Flex应用通过AMF(Action Message Format)与Java应用程序进行高效的数据通信。BlazeDS不仅支持远程方法调用(RPC),还支持发布和订阅消息模型,使得实时数据同步成为可能。...

    PHPRPC ——as3的结合……

    在描述中提到的“前台的FLEX中的控件”,可能是指在Flex应用中使用的自定义或预定义组件。 3. **PHPRPC**:PHPRPC是一个轻量级的PHP RPC框架,其设计目的是简化服务器端PHP与客户端(如AS3)之间的通信。它提供了...

    java开发的一个flex实例 使用DAGAGRID

    在本文中,我们将深入探讨如何使用Java开发一个Flex实例,特别是如何利用DAGAGRID组件进行数据库交互。Flex是一款强大的富互联网应用(RIA)开发框架,它允许开发者创建交互式、响应式的用户界面。Java则作为后端...

    flex教程-Flex简介

    Flex结合了桌面应用的响应性和Web应用的广泛传播特性,其基本架构包括Adobe SDK、Flex Charting、Flex Data Services和Flex Builder四个部分,提供图形组件、数据管理、消息服务和RPC服务等功能。 1.2.2 Flex的特点...

    Flex做的登录表单

    在本文中,我们将深入探讨使用Flex构建登录表单的相关知识点。 1. **Flex基础**: Flex提供了MXML和ActionScript 3.0两种主要的编程语言,MXML是一种声明式语言,主要用于UI组件的布局和配置,而ActionScript 3.0...

    flex同jsp的结合

    - 使用Flex模拟器或直接在浏览器中测试Flex应用,确保与Java服务的通信正常。 - 将Flex应用编译为SWF文件,将其与Java Web应用打包在一起,部署到应用服务器。 7. **安全考虑**: - 由于Flex应用通常暴露在...

Global site tag (gtag.js) - Google Analytics