使用Flash Remoting实现Flash与J2EE通信

如果对Flash Remoting不太了解,请参看前面的入门教程。本文假设我们已经写好了客户端代码,并且在J2EE 环境下配置好了Web应用flashservices。

在J2EE 版的实例中,我们将使用一个简单的Java类来实现HelloWorld远程服务。Java类很简单,无会话状态(stateless),也就是说每调用一次类都会新增该类的一个实例。

用文本编辑器创建一个纯文本文件,命名为Services.java,添加如下代码:

package tutorials.remoting; 
public class HelloWorld { 
public String sayHello(String userName) { 
        return "您好," + userName + "。这是来自J2EE Flash Remoting的问候"; 
    } 
}

这个简单类也只包含一个sayHello方法,其作用与CF版本范例中的一样。不难看出,Java类的核心语法 跟ActionScript 2(特别是ActionScript 3)类的语法十分相似。

将文件保存在Web应用的根目录classes\tutorials\remoting中,然后在此路径下使用JDK编译HelloWorld.java,生成类文件。

由于我们架构该Web应用时已经整合了JRun和Tomcat,因此它们的服务器端代码放置路径相同,服务名称相同,都是类的完全限定类名。它们的网 关URL也类似,都是http://主机名/上下文路径/gateway,只是端口不一样而已。具体细节请参看这张表

确认在JRun环境下,已经启动了实例服务器tutorials,在Tomcat环境下已经启动了Web应用flashservices,返回Flash,分别用这两个版本的网关 路径进行测试,测试效果如下图。

测试效果

注意:在JDK环境下,如果将Java代码UTF-8编码,那么需要在编译附加encoding参数,参数值为utf-8。

当然,J2EE Flash Remoting也支持其它类型的Web服务。如EJB、JavaBean、Servlet,JRun环境下支持JMX。详见Flash Remoting支持的远程服务

发表评论