FLEX 与JAVA的LCDS BLAZEDS配置.

    技术2022-05-20  35

    FLEX 与JAVA的LCDS BLAZEDS配置.1.构架原理Flash Remoting的原理类似于Resin的Hessian,都是使用基于HTTP协议的轻量级二进制协议,即AMF。

    Flash Remoting使用AMF来和服务器通讯。基本过程的原理可以参考Flash网站上面的文档。简单来说就是在服务器端,需要有一个Servlet,接收Flash的HTTP请求,然后把AMF格式封装的HTTP请求解析成为对服务器端对象的调用(例如调用Java的业务对象);在客户端,Flash Remoting API接收服务器端的HTTP Response,把AMF格式封装的Response解析成为Flash 数据对象。

    采用Flash Remoting方式下的软件架构如下:

    Flash(Client) <-----(HTTP AMF)----> Spring Bean(Server) <-> Hibernate PO

    由上面可以看到,传统的Web层完全被砍掉了,Flash通过AMF协议和Gateway的转换,可以直接访问服务器端的 Bean。

    2.修改WEB.XML,加入Servlet配置..

    <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <param-name>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping>

    3.在WEB-INF/LIB下加入以下JAR包 (以上JAR包来源于下载的BLAZEDS库包)commons-httpclient-3.0.1.jarflex-messaging-common.jarflex-messaging-core.jarflex-messaging-opt.jarflex-messaging-proxy.jarflex-messaging-remoting.jarflex-rds-server.jar

    4.在WEB-INF/flex下加入配置文件(以上配置文件来源于下载的BLAZEDS库包)services-config.xmlmessaging-config.xmlproxy-config.xmlremoting-config.xml

    至此,JAVA端的AMF已经配置OK.....

    先测试一下:将commons-httpclient-3.0.1.jar删除.输入以下URLhttp://localhost:8080/baosteel_sgm/messagebroker/amf会显示HTTP Status 500 - 错误javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/httpclient/UsernamePasswordCredentials这时说明配置已经起作用了..将commons-httpclient-3.0.jar放回去以便下一步使用 ...

     

    5.建立JAVA测试类package com;

    public class Hello {

    //定义一个方法返回字符串,等待远程调用。

    public String HelloLCDSRemoting(String name){

    return "Hello"+name+"LCDS";

    }

    }

    6.修改WEB-INF/flex/remoting-config.xml,加入以下内容

     

     

     

    <destination id="HelloRemoting"> <properties> <source> com.Hello</source> </properties> </destination>

     

    然后将WEB服务器运行起来

    7.下来开始FLEX端配置:在FLEX BUILDE项目上查看属性,>FLEX 服务器:: 应用服务器选J2EE.沟选"使用远程访问服务", BLAZE DS.在"服务器位置"TAB中,配置如下:根文件夹:E:/baosteel_sgm根URL : http://localhost:8080/baosteel_sgm上下文根目录 : /baosteel_sgm

    点击"验证配置" ,此要求WEB服务器启动起来才可以难通过...

    这时"确定"按钮才可以用了..点击保存...

     

    如果服务器不在运行,无法验证通过,可以直接更改项目下的.flexProperties文件,内容如下

    <?xml version="1.0" encoding="UTF-8" standalone="no"?> <flexProperties enableServiceManager="false" flexServerFeatures="4" flexServerType="2" serverContextRoot="/baosteel_sgm" serverRoot="E:/baosteel_sgm" serverRootURL="http://localhost:8080/baosteel_sgm" toolCompile="true" useServerFlexSDK="false" version="2"/>

    8.建立FLEX测试代码

    protected function button11_clickHandler(event:MouseEvent):void{var HelloJava:RemoteObject=new RemoteObject("HelloRemoting");//添加调用成功和调用失败的监听HelloJava.addEventListener(FaultEvent.FAULT,HelloJavaFault);HelloJava.addEventListener(ResultEvent.RESULT,HelloJavaResult);HelloJava.HelloLCDSRemoting(" tata ");}//声明调用失败的监听函数private function HelloJavaFault(event:FaultEvent):void{//显示错误信息Alert.show(event.message.toString(),"调用失败");}//声明调用成功的监听函数private function HelloJavaResult(event:ResultEvent):void{//显示返回结果Alert.show(String(event.result),"调用成功");}

     

    Powered by Zoundry


    最新回复(0)