Blazdes 和flash builder 配置实例
纠结了一天的事件 查找了好多的资料。终于把这个任务完成了。
jdk 和tomcat 都需要配置。
.;%Java_Home%\lib;%CATALINA_HOME%/common/lib; --Classpath
D:\tomcat6 --CATALINA_HOME
D:\Program Files\Java\jdk1.6.0_01 --Java_Home
%Java_Home%\bin;%CATALINA_HOME%/bin; --Path
配置基本就这些。
cmd_javac 检测jdk是否配置成功。
http://localhost:8080 检测tomcat是否配置成功。
MyEclipse 8.5 新建一web工程。不要把web工程建立在tomcat下面的webapps下面否则会报错。把下载的blazdes加压后的
三个文件拷到WebRoot下面覆盖即可。
新建一个class 包随便:
package pac; public class HelloWorld { public String getHello() { return "Hello"; } public String helloJavaFlex(String name) { return "hello," + name + "您可以使用java和flex通信了"; } }
修改remoting-config.xml 添加
<destination id="IDhello">
<properties>
<source>pac.HelloWorld</source>
</properties>
</destination>
<properties>
<source>pac.HelloWorld</source>
</properties>
</destination>
另外web.xml下面的
<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> 取消禁用并设置value为false.
<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> 取消禁用并设置value为false.
新建flash builder工程。设置j2se服务端
进行配置:
然后一路走下去。选择完成。最后点击数据-服务位置 点击选择即可。
<?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" xmlns:services="services.*"> <fx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; protected function button1_clickHandler(event:MouseEvent):void { ro.helloJavaFlex("--"); ro.getHello(); ro.addEventListener(ResultEvent.RESULT,ResaultH); } private function ResaultH(event:ResultEvent):void { trace(event.result.toString()+"---"); } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="ro" destination="IDhello" endpoint="http://localhost:8080/Blazdes_Demo/messagebroker/amf"/> </fx:Declarations> <s:Button x="286" y="169" label="按钮" click="button1_clickHandler(event)"/> </s:Application>
endpoint是该值为[http://+主机地址:端口/blazeds在webapps中的那个文件夹的名字/ messagebroker/amf],后面的/messagebroker/amf是固定的。可设置可不设置。
如果在类里面动态的进行通信的话为:
package m { import mx.controls.Alert; import mx.rpc.AsyncResponder; import mx.rpc.AsyncToken; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.RemoteObject; public class ClientInfo { public var remote:RemoteObject; public static var PlayerClient:ClientInfo; public var PlayerObj:Object; public var teamObj:Object; public function ClientInfo() { } public static function getInstance():ClientInfo { if(PlayerClient==null) { PlayerClient=new ClientInfo(); } return PlayerClient; } public function StartClient():void { if(remote==null) { remote=new RemoteObject(); } remote.endpoint="http://192.168.10.92/logservice/messagebroker/amf"; } public function getPlayerInfo():void { remote.destination="userService"; Alert.show("btn1"); var result:AsyncToken =remote.getByUserId(72); result.addResponder(new AsyncResponder(playerInfoResultHandler,RemoteFault)); } public function getPlayerInt():void { remote.destination="teamService"; var result:AsyncToken =remote.getTeam(72); result.addResponder(new AsyncResponder(playerIntResultHandler,RemoteFault)); } private function playerInfoResultHandler(event:ResultEvent,token:Object):void { trace("个人信息加载成功"+event.result.toString()); Alert.show("btn11"); PlayerClient.PlayerObj=event.result; } private function playerIntResultHandler(event:ResultEvent,token:Object):void { trace("球队信息加载成功"+event.result.toString()); Alert.show("btn22"); PlayerClient.teamObj=event.result; } private function RemoteFault(event:FaultEvent,token:Object):void { Alert.show(event.fault.toString()); } } }
服务端进行相应的服务目标配置。