Flex 与 WebORB 学习(二)
关键字: flex flash weborb amf java
在现有的web app中整合WebORB and flex应用。
http://www.themidnightcoders.com/weborb/java/deploying_weborb_into_java_ee_server.shtm
使用
WebORB for Java 3.0 Beta 1
Tomcat 5.5.23
[WEBORB_INSTALL] 指WebORB解压缩目录
[YOUR APP PATH] 指现有web app的web root目录
一、POJO与WebORB整合
例如现有的web应用中有一个UserService
public class UserService {
public UserBean getUserBean(int id) {
UserBean bean = new UserBean();
bean.setId(id);
bean.setName("aaaa");
return bean;
}
}
1.复制 [WEBORB_INSTALL]\webapp\WEB-INF\classes\weborb-config.xml
到 [YOUR APP PATH]\WEB-INF\classes
2.复制 [WEBORB_INSTALL]\weborb.jar
到 [YOUR APP PATH]\WEB-INF\lib
3.修改 [YOUR APP PATH]\WEB-INF\web.xml 添加
<servlet>
<servlet-name>weborb</servlet-name>
<servlet-class>weborb.ORBServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet>
<servlet-name>download</servlet-name>
<servlet-class>weborb.DownloadServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>/codegen.wo</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>weborb</servlet-name>
<url-pattern>*.wo</url-pattern>
</servlet-mapping>
4.创建 [YOUR APP PATH]\WEB-INF\flex 目录
复制 [WEBORB_INSTALL]\webapp\WEB-INF\flex 所有内容
到 [YOUR APP PATH]\WEB-INF\flex
打开Flex Builder创建project
File -> New -> Flex Project -> Flex Data Services
Root folder: [YOUR APP PATH]
Root URL: http://localhost:8080/[Your App Context]
Context root: /[Your App Context]
项目名称我使用的是 flexWebORB1 (会自动创建[YOUR APP PATH]\flexWebORB1 目录)
mxml内容如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
[CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function faultHandler( event:FaultEvent ):void {
Alert.show( event.fault.faultString, "Error" );
}
private function getComputerInfoHandler( event:ResultEvent ):void {
Alert.show(event.result.name);
}
public function onClick() : void {
compinfo.getUserBean(1);
}
]]
</mx:Script>
<mx:RemoteObject id="compinfo" source="myapp.service.UserService"
destination="GenericDestination"
showBusyCursor="true"
fault="faultHandler(event)" >
<mx:method name="getUserBean" result="getComputerInfoHandler(event)"/>
</mx:RemoteObject>
<mx:Button x="10" y="10" label="Button" click="onClick()"/>
</mx:Application>
RemoteObject中的 source="myapp.service.UserService" 是java类的完全限定名
destination="GenericDestination" 是配置在[YOUR APP PATH]\WEB-INF\flex\remoting-config.xml 中
<destination id="GenericDestination">
<properties>
<source>*</source>
</properties>
</destination>
编译flex, 启动tomcat就可以测试了swf了.
我们也可以添加一个destination
在remoting-config.xml 中添加
<destination id="UserServiceDestination">
<properties>
<source>myapp.service.UserService</source>
</properties>
</destination>
修改mxml
<mx:RemoteObject id="compinfo"
destination="UserServiceDestination"
showBusyCursor="true"
fault="faultHandler(event)" >
<mx:method name="getUserBean" result="getComputerInfoHandler(event)"/>
</mx:RemoteObject>
重启Tomcat进行测试
二、整合WebORB 管理控制台
1.复制 [WEBORB_INSTALL]\webapp\weborbconsole.html
到[YOUR APP PATH]
2.复制
[WEBORB_INSTALL]\webapp\console
[WEBORB_INSTALL]\webapp\weborbassets
两个文件夹到 [YOUR APP PATH]
重启 tomcat后,可以在 http://localhost:8080/[Your App Context]/weborbconsole.html 看到控制台.
可以在Management -> Services -> Deployed classes 中找到 WEB-INF/classes 节点
找到UserService,可以在CodeGenerator产生AS3代码
选中一个方法,可以在Test Drive中直接测试.
分享到:
相关推荐
《WebORB4初级教程》是一份详尽的指南,旨在帮助开发者快速掌握如何利用WebORB框架实现Flex与.NET之间的高效通信。这份教程提供了全面而深入的介绍,不仅适合初学者,也对有经验的开发人员大有裨益。 #### 二、...
WebORB允许开发人员使用多种编程语言,如ActionScript、Flex、Java、C#或.NET,来创建分布式应用程序。它特别适合构建基于AMF(Action Message Format)的实时数据交互应用。 描述中提到的"weborb 5.1 去除授权验证...
总之,Flex与.NET通讯中间件,特别是WebORB,为开发人员提供了一种高效、灵活的途径,实现了Flex与.NET之间的无缝对接,促进了富互联网应用的开发和部署。理解并掌握这类中间件的使用,对于提升项目开发效率和应用...
5. ** 第三方库 **:还有许多第三方库如GraniteDS和WebOrb,它们提供了额外的功能和优化,简化了Flex与Java的集成。 压缩包中的"Flex_Java"可能是一个目录,包含了与这些通信方法相关的源代码、配置文件、教程文档...
5. **远程通信**:如果投票数据需要保存在服务器上,Flex可以使用 BlazeDS 或 WebORB 等中间件与后端服务器进行AMF(Action Message Format)通信,实现实时的数据交换。 6. **动画和特效**:Flex内置了丰富的动画...
如果想实现网络对战功能,Flex可以借助 BlazeDS 或 WebORB 等服务端组件,实现实时的数据交换。玩家的每一步操作都会发送到服务器,经过合法性验证后,再将结果广播给所有参与者。 8. UI设计与用户体验: Flex...
学习这个例子,你可以深入理解WebORB for .NET如何工作,如何在C#中实现AMF Remoting服务,以及如何在客户端调用这些服务。这对于开发跨平台、高性能的RIA(Rich Internet Application)非常有帮助。此外,了解AMF...
AMF是一种高效的二进制数据序列化格式,常用于Flash和Flex应用与服务器之间的数据交换。通过支持AMF,Curl开发者可以利用这些服务器技术,实现与后端服务的低延迟、高性能通信,从而创建更加动态和响应迅速的RIA。 ...
3. **WebORB for PB**:WebORB是一款强大的中间件,它允许PB应用程序与Web服务、Flex和Ajax进行交互。在PB8中结合WebORB,可以构建分布式、跨平台的Web应用。 4. **Web Application架构**:理解Web应用程序的基本...