使用Flash Remoting

以Flash Remoting for J2EE为例,分为两部分:J2EE部分与Flash部分。
Flash Remoting for Java自带的文档《flashRemoting.pdf》很详细。
之所以写这篇笔记有两个原因:
1 该文档可能有点过时,比如导入外部类的代码无法工作。
2 介绍OpenAMF的使用及对其Spring的支持。

1 J2EE部分
J2EE应用通过Flash Remoting Gateway暴露服务(可以是Java对象,Servlet,EJB等 )。
Adobe提供了一个商业产品,开源产品可以选择OpenAMF。
web.xml配置分别如下:
Adobe Flash Remoting for J2EE

<servlet>
    <servlet-name>FlashGatewayServlet</servlet-name>
    <servlet-class>
        flashgateway.controller.GatewayServlet
    </servlet-class>
</servlet>
 

OpenAMF

<servlet>
    <servlet-name>DefaultGateway</servlet-name>
    <servlet-class>org.openamf.DefaultGateway</servlet-class>
    <init-param>
        <param-name>OPENAMF_CONFIG</param-name>
        <param-value>/WEB-INF/openamf-config.xml</param-value>
    </init-param>
</servlet>

OpenAMF配置文件openamf-config.xml
与spring结合:配置invoker

<invoker>
    <name>Spring</name>
    <class>org.openamf.invoker.SpringBeanInvoker</class>
</invoker>
这样就可以暴露spring配置的bean


2 Flash部分
又可分为client-side和server-side。Flash 8与FMS 2使用的脚本版本不同,因此具体编程存在差别。
2.1 client-side
如果使用Flash 8开发,需要需要安装相应的flash remoting component。
下载地址是:http://www.adobe.com/products/flashremoting/downloads/components/
示例代码:

 

import mx.remoting.NetServices;
import mx.remoting.Service;

System.security.allowDomain("*");
var gateway:String = "flash_remoting_gateway_url"; // modify this

NetServices.setDefaultGatewayUrl(gateway);
var gatewayConnection:NetConnection = NetServices.createGatewayConnection();
var service:Service = gatewayConnection.getService("SampleBean");

var sampleMethod_Result:Object = new Object();
sampleMethod_Result.onResult = function(result) {
	trace("result: " + result);
}
service.sampleMethod(sampleMethod_Result, "param1");
关于传递对象参数的问题参见文档。


2.2 server-side
FMS 2内置了对Flash Remoting的支持。
示例代码:

 

load("netservices.asc"); // use flash remoting

gateway = "flash_remoting_gateway_url"; // modify this

NetServices.setDefaultGatewayUrl(gateway);
gatewayConnection = NetServices.createGatewayConnection();
service = gatewayConnection.getService("SampleBean");

var sampleMethod_Result = new Object();
sampleMethod_Result.onResult = function(result) {
	trace("---------" + result);
}
service.sampleMethod(sampleMethod_Result, "param1");
 

 

阅读更多
换一批

没有更多推荐了,返回首页