使用BlazeDS实现Java和Flex通信
2008-06-04 17:52
441 查看
作者:Liceven,博客:http://yexin218.cublog.cn 日期:2008-6-3
转载请注明来源。谢谢合作.
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添加以下语句:
转载请注明来源。谢谢合作.
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添加以下语句:
<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.
package hello;
public class HelloWorld {
public String sayHelloTo(String str) {
System.out.println("Hello " + str);
return "Hello " + str; }
}
10. 在BlazeApp.mxml文件中新建一个text和一个按钮
,来显示从HelloWorld传回来的信息。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[ import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var helloResult:String;
private function sayHelloTo():void {
ro.sayHelloTo(inputText.text);
}
private function resultHandler(event:ResultEvent):void {
helloResult = event.result as String;
} ]]> </mx:Script>
<mx:RemoteObject id="ro" destination="helloworld" result="resultHandler(event)" />
<mx:HBox width="100%">
<mx:TextInput id="inputText"/>
<mx:Button label="Submit" click="sayHelloTo()"/>
</mx:HBox>
<mx:Label text="{helloResult}"/>
</mx:Application>
11. 现在,我们要定义remote object来是的你的flex程序能
够调用java 类。
首先来配置/WEB-INF/flex/remoting-config.xml文件,添加
以下粗体部分来新增一个destionation—HelloWorld类。
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="helloworld">
<properties>
<source>hello.HelloWorld</source>
</properties>
</destination>
</service>
12. 到此,配置结束。然后选择BlazeApp项目,选择在服务器上执行。
即浏览地址为:http://localhost:8080/BlazedApp/BlazedApp.html
如果你能在输入框输入字段之后,点击按钮能返回Hello,XXX的信息,就代表成功了。如图:
13. (我使用的例子的工程名字叫做DSTest除此之外操
作相同,另外附录中的程序也是使用DSTest。请自行参考。)
14. 参考文献:http://blog.baao.com/blojsom/blog/
yac/BlazeDS/BlazeDS-avec-Flex-builder-3-Tomcat-
6-et-les-webtools?smm=y 以及http://java-x.blogspot
.com/2008/03/blazeds-for-java-flex-communication
.html#sampleCode
<!--[endif]-->附件:http://download.csdn.net/source/482338
相关文章推荐
- 使用BlazeDS实现Java和Flex通信
- 使用BlazeDS实现Java和Flex通信(1)---HelloWorld
- 使用BlazeDS实现Java和Flex通信(2)---BlazeDS 与Spring集成指南
- 使用BlazeDS实现Java和Flex通信
- 使用BlazeDS实现Java和Flex通信
- 使用BlazeDS实现Java和Flex通信
- 使用BlazeDS实现Java和Flex通信。
- 使用BlazeDS实现java与flex传对象时,RemoteClass中包含自己写的类,后台无法转换的问题
- 使用BlazeDS实现Java和Flex通信。
- 使用BlazeDS实现Java和Flex通信之hello world
- [整理]使用blazeds实现flex和java交互
- 使用BlazeDS实现java与flex传对象时,RemoteClass中包含自己写的类,后台无法转换的问题
- 使用BlazeDS实现Java和Flex通信之hello world
- Java使用Redis实现分布式锁
- Java_JSP2_使用URL Rewrite如何实现网站伪静态?
- 解决问题之道--使用Java实现数据的分组求和
- 【Java学习笔记】Comparable接口的实现和使用
- 使用java实现面向对象编程
- java里如何使用输入流和输出流实现读取本地文件里内容和写出到本地文件里
- 如何使用 Java8 实现观察者模式?(上)