加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 4.1 + BlazeDs (Demo实例)

发布时间:2020-12-15 03:45:10 所属栏目:百科 来源:网络整理
导读:这个基础教程是 Flex4.1 , Blazeds4.0 为基础写的。 第一步:新建 Web Project ,名字为: FlexBlazeDsDemo ,点 Finish。 第二步:去 Adobe 公司的网站上下载 Blazeds 的包, 解压 blazeds.war ,看到 blaeds 的文件夹,里面有一个 lib 的文件夹,将包引入

这个基础教程是Flex4.1Blazeds4.0为基础写的。

第一步:新建Web Project,名字为:FlexBlazeDsDemo,点Finish。

第二步:去Adobe公司的网站上下载Blazeds的包,解压blazeds.war,看到blaeds的文件夹,里面有一个lib的文件夹,将包引入到项目工作中去

同时将blazeds->WEB-INF下的flex文件夹Copy到项目中的WEB-INF下,目录结构如下:


第三步:在Tomcat中发布项目

第四步:在Web Project中添加Flex项目

Step1


Step2:服务器技术选择J2EEBlazeds



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 好像不起作用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读