Flex 4.1 + BlazeDs (Demo实例)
这个基础教程是Flex4.1,Blazeds4.0为基础写的。 第一步:新建Web Project,名字为:FlexBlazeDsDemo,点Finish。 第二步:去Adobe公司的网站上下载Blazeds的包,解压blazeds.war,看到blaeds的文件夹,里面有一个lib的文件夹,将包引入到项目工作中去 同时将blazeds->WEB-INF下的flex文件夹Copy到项目中的WEB-INF下,目录结构如下: 第三步:在Tomcat中发布项目 第四步:在Web Project中添加Flex项目 Step1: Step2:服务器技术选择J2EE及Blazeds Step3:配置上述图中的信息,根文件夹,选择FlexBlazeDsDemo发布之后的位置,配置之后的信息如下: Step4:新建html-template(打开porblem窗口,如果有提示这个错误就新建)和flex-src文件夹,目录结构如下:建立完文件,会提示:Description Resource Path Location Type?missing ; before statement index.template.htm,这个错误不用处理,接着往下走。 Step5:调整目录结构及参数配置,如下图 在上图中,将主源文件夹修改成:flex-src 特别注意:将FlexBlazeDsDemo.mxml文件移动到flex-src目录下,因为我们已经将主源文件夹修改,并且以后所建的Flex文件也都要放到flex-src下。 Step6:服务参数,也就是Flex编译器 -services ?"E:apache-tomcat-6.0.20webappsFlexBlazeDsDemo1WEB-INFflexservices-config.xml" ?-loale zh_CN step7:在FelxBlazeDsDemo输入以下几行代码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="Service" destination="helloService" result="helloService_resultHandler(event)" /> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.ResultEvent; // 提交 private function Test():void{ Service.sayHi("Test Me"); } // 返回结果的处理 private function helloService_resultHandler(event:ResultEvent):void{ Alert.show(event.result as String); } ]]> </fx:Script> <s:Button label="点击" click="Test()" /> </s:Application>destinatioin 一定要与上一步中的 remote-object.xml 的 destination 一样, reusult 是调用成功之后处理函数。 step8:添加BlazeDs,配置web.xml文件,将我们下载的BlazeDs包下在的web.xml文件覆盖我们项目的文件,web.xml文件内容如下:(这个文件不用进行更改) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>BlazeDS</display-name> <description>BlazeDS Application</description> <!-- Http Flex Session attribute and binding listener support --> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!-- MessageBroker Servlet --> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <display-name>MessageBrokerServlet</display-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> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> </web-app>step9:写一个 Java 类, HelloWorld ,代码如下: package com.test.blazeds; public class HelloWorld { public String sayHi(String str){ System.out.println(str); return str; } } step10:配置remote-config.xml文件,这是重点配置的文件,否则将调用不到Java程序。 <?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="helloService"> <properties> <source>com.test.blazeds.HelloWorld</source> <scope>request</scope> </properties> </destination> </service> step11:在浏览器地址栏输入http://localhost:8080/FlexBlazeDsDemo/FlexBlazeDsDemo.html,?查看效果,端口号和项目名称改成自己?即可。 遇到的问题: (1)本人将如上项目部署到Tomcat 6.x后,发现输入如上访问地址报404错误,在Tomcat中只有FlexBlazeDsDemo.swf文件,于是改访问路径为: http://localhost:8080/FlexBlazeDsDemo/FlexBlazeDsDemo.html? 后正常访问,但是不知道如何通过配置使用如上路径访问。 (2)这个程序使用的是Flex SDK4.1,如果使用Flex SDK 4.5 好像不起作用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |