热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flex同Java通信BlazeDS入门图文详解(上)

以前做项目时因为时间关系,囫囵吞枣状态下完成了,现在回头仔细研究了下究竟各种配置到底是什么意思,起什么作用,以一个什么的流程

以前做项目时因为时间关系,囫囵吞枣状态下完成了,现在回头仔细研究了下究竟各种配置到底是什么意思,起什么作用,以一个什么的流程来建立通过BlazeDS通信的Flex+Java程序比较合理,在程序运行时遇到那些问题时是配置的原因,又怎样去修改配置,让一个代码逻辑没有问题的程序可以正常运行,现将研究的成果记录下来,分享+备忘。

本篇文里主要介绍如何创建一个工程,并设置好相应的配置。

后续将介绍项目如何正确同步到Tomcat服务器,请期待Flex同Java通信--Blazed入门图文详解(下)。

前期准备

    本文所用软件:

Eclipse IDE for Java EE Developers

Flash Builder 4.5 Plugin-in 

Tomcat 7

BlazeDS 4

      以上软件官网均可下载,或试用,或免费 ,或者最一了百了的方法——购买

    环境搭建:

      1.将Eclipse和FlashBuilder正确安装,配置好JDK;

       2.Tomcat和BlazeDS解压,将blazeds.war文件解压,放到此目录中——\Tomcat7.0.12\webapps 。

创建Flex Project工程

       本文采用Flex和Java 放置在同一工程中的方式,根据向导提示创建工程,没有什么复杂的,稍微留心就可以,尤其是Flash Builder4.5,已经消除了之前设置某些参数无效的bug。

       1. 工程基本信息,其中FlexSDK可以根据自己的开发需要选择;

 

       2. Java部分的设置

 

          Tips:Java source folder 用于放置Java代码的文件夹,名称可以根据自身习惯设置;

                    Target runtime 配置好的Tomcat,此处必须选一个,否则无法进行创建;

                    Context root 用于设置将哪些URL请求通过Tomcat转发到Web应用,此处必须与工程名相同;

                    Content folder 这是最终编译后的容器目录,blazeds.war文件将会发布到该目录下的WEB-INF下的flex目录中,此处需跟Context root 的设置一样,

                    否则在使用RemoteObject与Java进行通信时会报错,目前还没找到原因,若有明白人,望指点一下;若开发环境使用MyEclipse,将文件名设置为

                    WebContent,可以自动部署;

                    Output folder 用于存放Flex编译后的swf和html等文件存放的路径,若为了编译文件的整齐,可以选择放在Content folder\bin等一个单独文件夹中,

                    因为习惯问题我设置为一样的;

       3. Flex部分的设置

 

          Tips:Main source folder 用于放置Java代码的文件夹,名称可以根据自身习惯设置;

                    Main application file 默认运行的swf对应的代码文件;

                    Output folder url 程序运行的主链接;

       生成的工程结构如图所示:

 

Flex与Java通信的配置

       1.示例后台Java类

          在"Demos/java_src”文件夹下添加com.Demos.DemoServices类,其完整代码如下:

1: package com.Demos;

2:  

3: public class DemoServices {

4: public String testRemoteServices(String var1) {

5: return "Test is ok" + var1;

6: }

7: }

       2.示例前端Flex应用

          修改"Demos/flex_src”文件夹下添加Demo.mxml文件,其完整代码如下:

1: xml version="1.0" encoding="utf-8"?>

2: <s:Application xmlns:fx&#61;"http://ns.adobe.com/mxml/2009"

3: xmlns:s&#61;"library://ns.adobe.com/flex/spark"

4: xmlns:mx&#61;"library://ns.adobe.com/flex/mx"

5: minWidth&#61;"955"

6: minHeight&#61;"600">

7: <fx:Script>

8: [CDATA[

9: import mx.rpc.events.FaultEvent;

10: import mx.rpc.events.ResultEvent;

11:

12: //用于返回结果正确时的处理事件

13: private function method1_resultHandler(event:ResultEvent):void

14: {

15: testResult.text &#61; event.result.toString();

16: }

17:

18: //用于返回结果错误时的处理事件

19: private function method1_faultHandler(event:FaultEvent):void

20: {

21:

22: }

23:

24: private function button1_clickHandler(event:MouseEvent):void

25: {

26: var testResults:String &#61; testBtn.label;

27: demoServices.testRemoteServices(testResults);

28: }

29:

30: ]]>

31: fx:Script>

32:

33: <fx:Declarations>

34: <s:RemoteObject destination&#61;"com.Demos.DemoServices" id&#61;"demoServices">

35: <s:method name&#61;"testRemoteServices" result&#61;"method1_resultHandler(event)"/>

36: s:RemoteObject>

37: fx:Declarations>

38:

39: <s:VGroup paddingTop&#61;"100" horizontalAlign&#61;"center" width&#61;"100%">

40: <s:Button id&#61;"testBtn" label&#61;"测试通信" click&#61;"button1_clickHandler(event)"/>

41: <s:TextInput id&#61;"testResult"/>

42: s:VGroup>

43: s:Application>

       3.通信配置

          代码编写完成后&#xff0c;首先将"Tomcat7.0.12\webapps\blazeds\WEB-INF”文件夹拷贝替换"Demos\Demos\WEB-INF&#xff1b;然后需要修改位于

       "Demos\Demos\WEB-INF\flex”文件夹中remoting-config.xml文件&#xff0c;为其添加以下代码&#xff1a;

1: <destination id&#61;"com.Demos.DemoServices">

2: <properties>

3: <source>com.Demos.DemoServicessource>

4: properties>

5: destination>

          Tips&#xff1a;id 也可以用代码中的demoServices&#xff1b;

                    Source 一定要跟Java类的名称完全一样&#xff0c;否则会报找不到类或者没有Channel的错误。

工程源码&#xff1a; /Files/iloveWater/Demos.zip

扩展阅读:

flex基本通信方式比较及BlazeDS和LCDS比较&#xff08;文中清晰介绍了BlazeDS所支持的功能&#xff0c;喜欢博主的图文清晰&#xff0c;推荐一下&#xff09;

flex与java--Blazeds学习&#xff08;配置&#xff09;&#xff08;文中介绍了本文没提到Flex&#43;Java项目创建及配置方式&#xff0c;博文很清新&#xff0c;推荐&#xff09;

Building a Flex application that connects to a BlazeDS Remoting destination using Flash Builder 4.5&#xff08;文中的样例代码就是来自于这里&#xff0c;是官方的博&#xff0c;老外典型的教程&#xff0c;清晰&#xff0c;严谨&#xff0c;废话木有&#xff0c;就是英文的&#xff09;


转:https://www.cnblogs.com/iloveWater/archive/2011/10/14/2212382.html



推荐阅读
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
author-avatar
王强丫ES
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有