使用BlazeDS实现Java和Flex通信

news/2024/5/19 17:35:45 标签: flex, java, application, tomcat, eclipse, 服务器

转自 http://news.newhua.com/news1/program_language/2008/65/08651542117B0B60H1DFK1C1D1D4EG6384728FB777FJ3513AG7G383.html?lt=common
BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信

  BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。这篇文章中,我讲述一种方法(也许不是最好的)使得我能够成功地利用 BlazeDS 和 Flex 建立一个简单的程序。使用的 IDE 是 eclipse, 而并非 Flex Builder. 下面我将逐步介绍怎么实现这个简单的程序。

1. 安装 JDK 和 Tomcat, 并且实现成功配置。详细请见: http://blog.chinaunix.net/u/21684/showart_195064.html

2. 安装 Flex SDK. 详细请见官方文档: http://www.adobe.com/devnet/flex/?navID=gettingstarted

3. 下载 BlazeDS , 下载地址和安装方法请参考: http://opensource.adobe.com/wiki/display/blazeds/Release+Builds 。如果你使用的是 turnkey 版本(建议下载此版本)里面实际上包含了 Tomcat 服务器了。但是本人因为之前已经装好了 Tomcat6.0.16 了,所以我的安装的是自己手动的了。如果你使用的是整合 Tomcat 版本的 BlazeDS, 那么请参 考 http://opensource.adobe.com/wiki/display/blazeds/Installation+Guide 。下面我介绍只安装 BlazeDS 的 web application 版本(但是仍然下载的是 Turnkey 版本)。下载的 zip 包里面包含了: blazeds.war: 主要的 BlazeDS war 文件,用来建立你的 BlazeDS 应用程序。 Sample.war 就是 BlazeDS 例子了。 Ds-console.war ,简单的 BlazeDS 部署管理程序。每一个 war 程序都是独立的,假如你使用 J2EE 的 web 应用程序选项,那么你必须有一个 J2EE 应用服务器或者 servlet 容器。比如使用 Tomcat. 而且必须把刚才的三个 war 文件部署在 Tomcat_Home ( tomcat 安装目录)下的 webapps 目录下。然后重启 Tomcat 服务器,在浏览器输入: http://localhost:8080/samples 如果看到显示页面代表就成功了。如果你的应用程序需要使用 HSWLDB 数据库,那么也拷贝 .zip 文件中的 sampledb 目录到 webapps 目录下,然后启动数据库。启动方法很简单:到 sampledb 目录下,执行 startdb.bat 就可了 (windows OS) 。 提示:可以的话,在你的 Eclipse 目录下,找到 eclipse.ini 把最大内存数改成 512.

4. ( 可选 ) 配置 Tomcat 的用户角色。即在 Tomcat_Home/conf/tomat-users.xml 添加以下语句:
Java代码
  1. <role rolename= "manager" /><user username= "abhi"  password= "abhi"  roles= "manager" />  
java"><role rolename="manager"/><user username="abhi" password="abhi" roles="manager"/>

 

5.          利用 Eclipse 建立 Flex Project 。工程名字叫做 BlazeApp.     

  

Application Type 选择 web application, 服务器选择 J2EE. 关联 WTP, 至于代码文件保存目录自定义。 Next 。

6.设置 J2EE 服务器。我们选择 Tomcat, 可能需要手动配置 (new) 。然后选择 flex war 文件,即我们放在 webapps 目录下的 blazeds.war.
然后 next.

7.          接着,默认设置,也可自定义。

接着 next. 其实到这里已经完成了 project 建立.

8.              接下来你可以在 eclipse 中可以看到整个工程的所有文件以及配置。在开发之前,可能需要修改 context root 配置。点击 BlazeApp 右键,选择属性,然后见到如图 , 修改 context root 值为 BlazeApp. (默认的是 WebContent, 好像不更改也可以。自行测试 )。
  

9.       创建 Java 文件。点击 src 文件夹,然后创建 java class. 类的包为 hello, 名字为 HelloWorld.

Java代码
  1. package  hello;    
  2. public   class  HelloWorld {   
  3. public  String sayHelloTo(String str) {   
  4. System.out.println( "Hello "  + str);       
  5.       return   "Hello "  + str; }       
  6. }  
java">package hello; 
public class HelloWorld {
public String sayHelloTo(String str) {
System.out.println("Hello " + str);    
     return "Hello " + str; }    
}
 

10.       BlazeApp.mxml 文件中新建一个 text 和一个按钮,来显示从 HelloWorld 传回来的信息。

Xml代码 复制代码
  1. <? xml   version = "1.0"   encoding = "utf-8" ?>     
  2. < mx:Application   xmlns:mx = "http://www.adobe.com/2006/mxml"   viewSourceURL = "srcview/index.html" >     
  3. < mx:Script >     
  4.   <![CDATA[ import mx.rpc.events.FaultEvent;   
  5.    import mx.rpc.events.ResultEvent;   
  6.       [Bindable]   
  7.       private var helloResult:String;   
  8.       private function sayHelloTo():void {   
  9.         ro.sayHelloTo(inputText.text);   
  10.         }   
  11.        private function resultHandler(event:ResultEvent):void {   
  12.           helloResult = event.result as String;   
  13.              } ]]>   </ mx:Script >     
  14.          < mx:RemoteObject   id = "ro"   destination = "helloworld"   result = "resultHandler(event)"   />     
  15.           < mx:HBox   width = "100%" >     
  16.             < mx:TextInput   id = "inputText" />     
  17.             < mx:Button   label = "Submit"   click = "sayHelloTo()" />     
  18.          </ mx:HBox >     
  19.         < mx:Label   text = "{helloResult}" />     
  20.      </ mx:Application >   
  11.        现在,我们要定义 remote object 来是的你的 flex 程序能够调用 java 类。首先来配置 /WEB-INF/flex/remoting-config.xml 文件,添加以下粗体部分来新增一个 destionation—HelloWorld 类。
Xml代码 复制代码
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < service   id = "remoting-service"     
  3.      class = "flex.messaging.services.RemotingService" >   
  4.   
  5.      < adapters >   
  6.          < adapter-definition   id = "java-object"   class = "flex.messaging.services.remoting.adapters.JavaAdapter"   default = "true" />   
  7.      </ adapters >   
  8.   
  9.      < default-channels >   
  10.          < channel   ref = "my-amf" />   
  11.      </ default-channels >   
  12. < STRONG > < destination   id = "helloworld" >     
  13.       < properties >     
  14.           < source > hello.HelloWorld </ source >     
  15.         </ properties >     
  16.   </ destination > </ STRONG >   
  17.   
  18.   
  19.   
  20. </ service >    12. 到此,配置结束。然后选择 BlazeApp 项目,选择在服务器上执行。即浏览地址为: http://localhost:8080/BlazedApp/BlazedApp.html 如果你能在输入框输入字段之后,点击按钮能返回 Hello,XXX 的信息,就代表成功了。如图:

    13.        (我使用的例子的工程名字叫做 DSTest 除此之外操作相同,另外附录中的程序也是使用 DSTest 。请自行参考。)


http://www.niftyadmin.cn/n/1055432.html

相关文章

JMM内存交互模型

JMM的主要目标就是定义程序中各个变量的访问规则&#xff0c;即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量指线程间共享的变量&#xff0c;包括实例字段、静态字段和构成数组对象的元素&#xff0c;存储在主内存中。 每个线程还有自己的工作内存…

Xmind ZEN破解版来袭:如何去除水印

Xmind ZEN是一款十分优雅地思维导图软件&#xff0c;但是找不到其破解版&#xff0c;在导出图片时就会携带上水印。 image-20190110110013642.png当然&#xff0c;土豪请&#xff08;点击这里关闭&#xff09;。 image-20190110110136483.pngMac版 在应用程序中找到XMind ZEN.a…

使用 Apache MINA 开发高性能网络应用程序

转自 http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/ <script type"text/javascript"> <!-- document.write(<tr valign"top"><td width"8"><img src"//www.ibm.com/i/c.gif" width"8&…

volatile的语义

1.可见性&#xff1a;当一个线程修改了这个值&#xff0c;新值对其他线程是立即可知的。当被volatile修饰的变量的值发生改变后&#xff0c;新值会立即从线程的工作内存刷新到主内存&#xff08;执行store和write操作&#xff09;&#xff0c;而且线程每次使用这个变量前&#…

使用maven和svn进行版本控制

maven-release-plugin 介绍 插件会帮助我们升级pom版本&#xff0c;提交&#xff0c;打tag&#xff0c;然后再升级版本&#xff0c;再提交&#xff0c;等等。基本配置&#xff1a; <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&g…

sql语句select group by order by where一般先后顺序

写的顺序&#xff1a;select ... from... where.... group by... having... order by.. 执行顺序&#xff1a;from... where...group by... having.... select ... order by... 转载于:https://www.cnblogs.com/navysummer/p/10863411.html

【转】C# winform 加载网页 模拟键盘输入自动接入访问网络

【转】C# winform 加载网页 模拟键盘输入自动接入访问网络 声明&#xff1a; 本文原创&#xff0c;首发于博客园 http://www.cnblogs.com/EasyInvoice/p/6070563.html 转载请注明出处。 背景&#xff1a; 由于所在办公室网络限制&#xff0c;笔者每天都使用网络都要先连接无线网…

原子性、可见性、有序性

原子性&#xff1a;由JMM直接保证的原子性变量操作是read、load、assign、use、store和write&#xff0c;大致可以认为基本数据类型的读写都是原子性的操作&#xff08;大多数商用虚拟机将long和double的读写作为原子性操作来对待&#xff09;&#xff0c;对于更大范围的原子性…