Flex 与 WebORB 学习

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中直接测试.

你可能感兴趣的:(tomcat,Web,bean,xml,Flex)