flex4+BlazeDs

趁空研究了下 flex4 + BlazeDS,做个笔录。

1、下载 blazeds 4
http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+trunk

2、创建java project(web project)
-创建testapp类
package zj.services;

public class testapp {
    public testapp() {

    }

    public String callHello(String name) {
        return "hello,"+name;
    }
}



-解压 blazeds.war 复制到项目根目录。
此时目录结构:
---src
---WEB-INF
   ----flex
       ----messaging-config.xml
       ----proxy-config.xml
       ----remoting-config.xml       (需修改)
       ----services-config.xml
       ----version.properties
   ----lib
   ----src
   ----web.xml                       (需修改)



-修改web.xml文件
添加RDSDispatchServlet的声明和映射
<servlet>
	    <servlet-name>RDSDispatchServlet</servlet-name>
	    <display-name>RDSDispatchServlet</display-name>
	    <servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
	    <init-param>
	        <param-name>useAppserverSecurity</param-name>
	        <param-value>false</param-value>
	    </init-param>        
	    <load-on-startup>10</load-on-startup>
	</servlet>
	<servlet-mapping id="RDS_DISPATCH_MAPPING">
	    <servlet-name>RDSDispatchServlet</servlet-name>
	    <url-pattern>/CFIDE/main/ide.cfm</url-pattern>
	</servlet-mapping>


-修改 web-inf/flex/remoting-config.xml文件
创建远程目标(启动Web服务的时候,BlazeDS将暴露Java类作为一个远程终端,将testrds作为id)
<destination id="testrds">
    <properties>
        <source>zj.services</source>
    </properties>
</destination>


-部署项目至tomcat下

3、创建flex项目
-对java project(web project)右键--添加/更改项目类型--添加flex项目类型

-配置“应用程序服务器类型”为“j2ee”

-选择“使用远程对象访问服务”,选择“BlazeDS”

-服务器位置
根文件夹:选择刚部署的tomcat目录(x:\tomcat\webapps\项目名)
根URL:http://localhost:8080/项目名
上下文根目录:/项目名
点击“验证配置”,“finish”配置

-切换至flash试图(按习惯可做可不做)
为项目创建 flex 文件目录,将mxml文件放到此文件夹中,为和java文件区分,便于管理

-点击“连接数据/服务”
选择“BlazeDS服务器目标”,选择之前在remoting-config.xml配置中的远程终端id(testrds),点击完成。

-画一个按钮,对按钮右键,选择“生成服务调用”,选择java类方法。

-画一个文本标签

<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
			
protected function button_clickHandler(event:MouseEvent):void{
    callHelloResult.token = testrds.callHello(_name.text);
}
					
]]>
</fx:Script>
<fx:Declarations>
    <s:CallResponder id="callHelloResult"/>
    <services:Testrds id="testrds" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>	
</fx:Declarations>
	
<s:TextInput id="_name"/>
	
<s:Label id="label2" text="{callHelloResult.lastResult}"/>
	
<s:Button id="button" click="button_clickHandler(event)"/>

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