J2EE环境下配置Flash Remoting

声明:本译文只供个人学习参考之用;本文所有权属于webstudio所有!
如要转载请通知本站,谢谢合作!

(一)在J2EE环境下,通过Tomact配置Flash Remoting

本教程需要的软件:
①j2sdk-1_4_2_06-windows-i586-p
②jakarta-tomcat-5.0.19
③Flash MX 2004

④Macromedia Flash Remoting for Flash MX 2004 ActionScript 2.0
flashremoting_comp_as20-win-en.exe (16.39 MB) (http://www.macromedia.com/software/flashremoting/downloads/components/)
http://www.macromedia.com/software/flashremoting/downloads/components/

⑤Flash Remoting Components ActionScript 1.0 for Flash MX 2004 and Flash MX Professional 2004
FlashRemotingComponents-win-en.exe (5.95 MB) (http://www.macromedia.com/software/flashremoting/downloads/components/)
http://www.macromedia.com/software/flashremoting/downloads/components/

⑥Flash Remoting MX.
Flash Remoting for J2EE (http://www.macromedia.com/cfusion/tdrc/index.cfm?product=flash_remoting)
http://www.macromedia.com/cfusion/tdrc/index.cfm?product=flash_remoting

1、安装JDK和Tomact,具体步骤见本论坛中《Flex1.5安装教程》;

2、安装Flash MX 2004(我用的是中文版,注意你的版本);

3、安装FlashRemotingComponents-win-en组件。它会在你的Flash MX 2004目录下新建一个en文件夹,这是由于我使用的Flash版本视中文版所引起的,先不用理它,继续!

4、安装flashremoting_comp_as20-win-en组件。好了,接下来我们要做一些改动!比较Flash MX 2004中的en和zh_cn(因为我用的是中文版,所以是这个文件夹名)文件夹中的文件,对应目录名把zh_n没有的en文件夹中内容都复制过来,如果整个子目录都没有就把它都复制过来,别手软! J 这样才能保证应用中不会找不到某些remoting类、方法什么的(如果你有更好的方法,不妨介绍一下)。

5、安装flashremoting-java-win-en,在安装过程中至少选择下图的选项中的Web Archive (WAR) with samples当然全部选中更好!

http://www.webstudio.com.cn/wsswf/remoting/remoting01.jpg

6、把你安装的Flash Remoting MX目录下的flashgateway-samples.war文件复制到Tom目录下的webapps中;

7、找到你安装的j2sdk1.4.2_06目录下的lib文件夹,复制名为tools.java的文件到Tom目录的server文件夹下的lib文件夹中,覆盖源文件;

8、运行Tomcat目录的下bin文件夹中的startup文件,等待服务启动更新以后,在IE地址栏输入
http://localhost:8080/flashgateway-samples/ 启动Flash Remoting,如下图所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting02.gif

等待几秒钟后,自动带你进入Remoting范例目录,如下图所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting03.gif

至此,你的Remoting已经配置成功了,以后可以通过直接启动Tomact服务来运行Remoting了!:)

(二)在J2EE环境下,通过Jrun4配置Flash Remoting

所需软件:
Macromedia JRun 4 (http://www.macromedia.com/cfusion/tdrc/index.cfm?product=jrun)
http://www.macromedia.com/cfusion/tdrc/index.cfm?product=jrun

1、安装Jrun4,安装过程中设置好用户名和口令,如下图所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting04.gif

2、Jrun4默认三个服务端口,你可以使用,当然也可以新建一个服务端口,如下图所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting05.gif

3、安装好后,登录,默认服务端口是8000,http://localhost:8000 即是控制平台。点击Create New Server按钮(在顶行上),输入Server名,比如myRemoting,Jrun会自动建立到这个Server的路径,点击Create Server,如下所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting07.jpg

4、服务器将建立一个新的端口,当然如果不满意,你可以继续修改,如下所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting08.jpg

5、点击 Finish按钮,将建立一个新的服务,并Jrun的servers目录下建立一个myRemoting文件夹,如下所示:

http://www.webstudio.com.cn/wsswf/remoting/remoting09.jpg

6、由于Jrun集成了对Flash Remoting Gateway的服务,所以把flashgateway-samples.war解压缩,并命名该文件夹为flashgateway-samples,然后flashgateway-samples文件夹放到myRemoting文件夹中,启动myRemoting服务,键入http://localhost:8101/flashgateway-samples/即可启动Remoting !开始你的Remoting之旅吧!:)


现在我们来学习一下java环境下的hello world程序!

这里我假设你参考了我第一篇文章,已经配置好你的jrun了。

1.我用的是jrun,如果你用的不是jrun那么请去看具体的相关服务器的配置信息,首先在开始->jrun4->jrun management console,点击进入页面之后选择左上角的create new server创建一个新的server,取名为flashremoting,新建之后启动这个server,然后我们进入jrun程序的文件夹d:/jrun4(我安装在d盘了,如果你的不是,请到相应的文件夹),双击进入 servers文件夹,这时你会看到jrun已经为你在这里创建了flashremoting,双击进入,在进入server-inf在这里我们新建一个名为classes的文件夹,大家可能已经明白了,不错,这个文件夹就是我们放java文件的地方,下面我建立的文件夹比较多,主要是要让大家看一下在flash里是怎么找到你要调用的java文件的,在classes文件夹下建立一个名为com的文件夹,在com文件夹下新建一个名为helloworld的文件夹,在helloworld文件夹下新建一个名为remoting文件夹(呵呵,是不是挺多的,好了文件夹就建立到这里了)

2.这里我建立的是一个javaBean程序,当然flash还能调用像ejb等别的程序,闲话少说,在remoting文件夹下新建一个TestBean.java文件,里面的代码很少也很简单。首先是包信息package com.helloworld.remoting;之后的然后是bean代码

[code]
public class TestBean implements java.io.Serializable {
public String getMessage() {
return "hello world!!!";
}
}
[/code]

在这里一定要注意这个(java.io.Serializable),这是不可少的,然后编译这个文件,编译成功之后我们的工作已经完成了,java端的工作是不是很简单呢,呵呵!!!

3.好了,如果你已经看过我的第二篇文章,那么一会你会发现,flash调用.net程序和调用java程序的代码很相似。首先导入所需要的类,以便flash在编译的时候能找到他们选择菜单栏窗口->其他面板->公用库->remoting,然后把RemotingClasses拖到舞台上然后删除(这样RemotingClasses类就已经在我们自己的文件的库里了),如果你想在创作中调试的话,那么你也需要把RemotingDebugClasses类拖到舞台上然后删除。

4.在舞台上我们拖一个textinput组件取名为response_txt。

5.选择第一帧,然后开启动作面板。

6.首先我们要把导入类代码如下:

[code]
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
[/code]

导入之后我们就可以用相应的对象了。

7.之后首先我们要建立一个连接,代码如下:

[code]
var flashtestService:Service = new Service("http://localhost:8101/flashservices/gateway",null, "com.helloworld.remoting.TestBean", null, null);
[/code]

这里第一个参数比较固定,请看一下你的jrun管理控制台页面,你会看到你的flashremoting server的端口为8101(我的是8101如果你的不是那么你要改为相对应的端口号)注意后面的应该是flashservices,而不是你的server的名字,这个比较固定,第三个参数你看到了吧,这个就是指引flash找到你的java文件的路径,首先由于第一个参数,flash确定你调用的是flashremoting server,之后flash会指向SERVER-INF文件夹下的classes下,我们的java文件的存放的路径是com->helloworld->remoting下,所以,首先应该写com.helloworld.remoting,之后连接的就是java的文件名TestBean,所以这里的写法就是com.helloworld.remoting.TestBean,好了连接完成了。

8.然后我们就要创建一个PendingCall对象去调用java的方法代码如下:

[code]
var pc:PendingCall = flashtestService.getMessage();
[/code]

这里请看一下java的代码,不错java里有一个getMessage方法,所以我们就要调用这个方法,来实现这个方法的功能了。

9.接下来是创建RelayResponder对象来设定从server里传回来的值指向flash的对应的方法,代码如下:

[code]
pc.responder = new RelayResponder(this, "getMessage_Result", "getMessage_Fault");
[/code]

这里和.net的程序有点不一样,因为.net的程序设定传回值的方法可以随便写,但java默认的是和java端的方法名相同并且在其后面加一个_Result,或者_Fault,也就是getMessage_Result,和getMessage_Fault。

10.然后当然就是写这个两个方法了,呵呵,代码如下:

[code]
function getMessage_Result(re:ResultEvent):Void {
response_txt.text = re.result;
}
function getMessage_Fault(fe:FaultEvent):Void {
response_txt.text = "There was a problem"+fe.fault.faultstring;
}
[/code]

这里,如果连接成功或者失败都把传回的值显示在response_txt里。

好了,代码完成了,是不是很简单,和.net的连接方式很类似呢,呵呵,还等什么,赶快测试吧,呵呵,如果出现这个问题error open url"http://localhost:8101/flashservices/gateway",那么你要注意了,看看你的防火墙,是不是禁止了flash连接了网络。如果是的话,那么赶快改回来吧(这个问题困饶我好久哦!!!),另一个问题就是我们现在编写的是java 的程序,所以你的环境变量一定要设定好,如果你确定你的jrun系统配置和java环境变量已经没问题了,那么除了上面我说的问题外,就应该没有什么问题了,good luck!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值