给java web项目利用BlazeDS添加flex(Flex3)支持——整合基础

  

个人整理,作者:javalzbin

声明:

此文章是个人总结的简单内容

文章是简单的hello world,认为简单的别看,以免浪费你的时间

转载保留原创地址 

 

新建web工程,给当前web工程添加flex支持

Web 工程目录

首先下载BlazeDS 然后解压BlazeDS.war到%TOMCAT_HOME%/webapps目录下文件名为blazeds内包涵了WEB-INF和META-INF文件夹,目录为:

添加blazeds 支持:

%TOMCAT_HOME%/webapps/blazeds/WEB-INF/lib目录下面所有jar文件拷贝到工程的webRoot/WEB-INF/lib 目录下

 

将%TOMCAT_HOME%/webapps/blazeds/WEB-INF/flex目录拷贝到工程的webRoot/WEB-INF 下.

 

最后,项目目录为

 

配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
    <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.jsp</welcome-file>
  </welcome-file-list>
</web-app>


至此,项目就集成了blazeDS功能了,写个hello world 经典测试类

package com.lzbin.test;
public class HelloWorld {
	public String sayHelloTo(String name){
		return "Hello World "+name;
	}
}


 

打开工程的WebRoot/WEB-INF/flex/remoting-config.xml,添加一个供flex 客户端调用的destination

<?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="Hello">
	    <properties>
	    	<source>com.lzbin.test.HelloWorld</source>
	    </properties>
	</destination>
<!-- 配置的重点是这里结束 -->		

</service>


 

然后,先部署项目到tomcat目录下 ,启动tomcat,目的一是为了看看能不能正确启动,目的二,是为了在%TOMCAT_HOME%/webapps目录下产生一个文件夹,此文件夹就是当前项目的对应的部署文件

 

然后,就是为项目添加flex的支持,选种项目点右键 Flex Project Nature → Add Flex Project Natrue ,如下图(前提是,eclipse装了Flex Builder 插件)

 

然后,弹出一个框,如图:

 

点next后,弹出:

注意了!!!!!

这里的Root folder要指向你Tomcat下的Webapps里的项目下面(这就是为什么刚刚要先部署下项目的原因,要不找不到)

Root URL是你用来调试用的,localhost后面的名子要和上面Root folder里的要相同,

Context root 这里也是的,

output folder :指Filex编译程序的位置,即,编译后的文件放置到哪里,选择放置到tomcart目录下,设置如下图

 

注意,设置完Root folder、Root URL、Context root三个后,要按下Validate Configuration按钮进行校验,然后点Finish完成

 

接下来就是配置环境了,未设置的时候,项目是会报错的

现在的目录为:

配好环境就可以了,首先,选中项目,右键 → Properties 弹出

选择,Flex Build Path 然后在右边选择Library path ,可以看到SDK出错信息,

选中,把它remove掉

然后,点Flex Build Path选项,在Source path 选项卡中,点Add Folder在弹出的对话框中写上flex_src。这表示所有的FLEX文件都放在这里,这个文件夹就是FLEX的源文件夹!如同JAVA里src一样!写完后点OK就可以了,然后在下面的Main source folder也改成flex_src

设置完之后,选择Flex Compiler,如下图,

设置Flex SDK Version为 use default SDK 其他不变,然后点击下apply按钮,回到Flex Build Path 然后在右边选择Library path,可以看到:

然后选择,Flex Server,如下图的设置,

一般不改,然后点击OK,完成

此时,项目目录为

把Flex JavaTest.mxml放到flex_src下,以后建立此类型文件,都建立在这个下面

如下图:

然后可以看到一个错误

这个错误说缺少模板,可以选中,右击,选中“recreate HTML Templates”.你再刷新一下项目,你会看到项目里新增了一个“html-templates”文件夹

错误就没了,此时目录为:

启动tomcat,成功启动后,在

FlexJavaTest.mxml文件点右键,Run As → Flex Application

如下图:

然后,可以发现,浏览器就可以正常使用了

 

好,现在测试调用刚写的后台的java类,首先,修改FlexJavaTest.mxml 内容如下

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:RemoteObject id="say" destination="Hello">
		
	</mx:RemoteObject>
	<mx:Button x="335" y="80" label=" Click" click="remotingSayHello(event);"/>
	<mx:TextInput x="159" y="80" id="tiName"/>
	<mx:Label x="109" y="82" text="name:"/>
	<mx:Label text="{say.sayHelloTo.lastResult}" x="44" y="162" width="448" height="71" id="lblView" color="#FCEE09" fontSize="20" fontWeight="bold" textDecoration="underline" fontStyle="normal"/>
	<mx:Script>
		<![CDATA[
			function remotingSayHello(event:Event):void{
				var iname:String=tiName.text;
				say.sayHelloTo(iname);
			}
		]]>
	</mx:Script>
</mx:Application>

 

 

完毕!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值