flex4与Java交互的三种通信方式
原文链接: http://www.blogjava.net/sxyx2008/archive/2010/07/17/326360.html ? flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘.
package
?com.flex.demo;
/**?*/ /** ?*?功能描述:该类用来实现flex与普通java类中的方法通信 ?*?@author?Administrator ?* ?*/ public ? class ?SimpleService? { ????public?String?sayHello(String?name){ ????????return?"Hello,?"+name; ????} } ????????配置说明:配置remoting-config.xml
<
destination?
id
="myservice"
>
???????? < properties > ???????????? < source > com.flex.demo.SimpleService </ source > ???????? </ properties > ???? </ destination > ????????调用
<!--
flex?与普通java类通信
-->
???????? < s:RemoteObject? id ="serv" ?destination ="myservice" ?fault ="serv_faultHandler(event)" ?result ="serv_resultHandler(event)" > ???????????? ???????? </ s:RemoteObject > ????????2flex 与服务器交互HTTPService
package
?com.flex.demo;
import ?java.io.IOException; import ?javax.servlet.ServletException; import ?javax.servlet.http.HttpServlet; import ?javax.servlet.http.HttpServletRequest; import ?javax.servlet.http.HttpServletResponse; /**?*/ /** ?*?功能描述:该servlet用来与flex进行交互 ?*?@author?Administrator ?* ?*/ @SuppressWarnings( " serial " ) public ? class ?SimpleServiceServlet? extends ?HttpServlet? { ???? ????@Override ????protected?void?service(HttpServletRequest?request,?HttpServletResponse?response) ????????????throws?ServletException,?IOException?{ ????????request.setCharacterEncoding("utf-8"); ????????response.setCharacterEncoding("utf-8"); ????????response.getWriter().write("我是服务器"); ????} } ????????调用
<!--
?flex?与服务器交互
-->
???????? < s:HTTPService? id ="service" ?fault ="service_faultHandler(event)" ?result ="service_resultHandler(event)" ?url ="http://localhost:8080/flexdemo/simpleServiceServlet" > ???????????? ???????? </ s:HTTPService > ????????3flex与webservice交互WebService
<!--
flex与webservice交互这里调用一个天气预报的webservice
-->
???????? < s:WebService? id ="ws" ? ??????????????????????wsdl ="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" ? ??????????????????????fault ="ws_faultHandler(event)" ? ??????????????????????result ="ws_resultHandler(event)" ? ??????????????????????showBusyCursor ="true" > ???????????? <!-- ?第二种调用webservice的方法<s:operation> --> ???????????? <!-- ?<s:operation?name="getWeatherbyCityName">?webservice中的方法名 --> ???????????? < s:operation? name ="getWeatherbyCityName" > ???????????????? <!-- 传递的参数 --> ???????????????? < s:request > ???????????????????? <!-- 参数名称必须与webservice中定义的参数名一致否则调用不成功报错 --> ???????????????????? < theCityName > ????????????????????????{city.text} ???????????????????? </ theCityName > ???????????????? </ s:request > ???????????? </ s:operation > ???????????? ???????? </ s:WebService > ????????三种方式完整的配置例子
<?
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" ???????????????creationComplete ="service.send()" ??????????????? > ???? < fx:Script > ???????? <![CDATA[ ????????????import?mx.controls.Alert; ????????????import?mx.rpc.events.FaultEvent; ????????????import?mx.rpc.events.ResultEvent; ????????????//错误处理函数 ????????????protected?function?serv_faultHandler(event:FaultEvent):void ????????????{ ????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示"); ????????????} ????????????//成功调用函数 ????????????protected?function?serv_resultHandler(event:ResultEvent):void ????????????{ ????????????????Alert.show("调用成功了:"+event.result?as?String,"提示"); ????????????} ????????????protected?function?service_faultHandler(event:FaultEvent):void ????????????{ ????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示"); ????????????} ????????????protected?function?service_resultHandler(event:ResultEvent):void ????????????{ ????????????????Alert.show("调用成功了:"+event.result?as?String,"提示"); ????????????} ????????????protected?function?ws_faultHandler(event:FaultEvent):void ????????????{ ????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示"); ????????????} ???????????? ????????????//调用成功了 ????????????protected?function?ws_resultHandler(event:ResultEvent):void ????????????{ ????????????????trace(event.result); ????????????????lbl.text=(String)(event.result); ????????????} ????????????//第一种调用webservice的方法 ????????????//此方法调用webservice ????????????protected?function?btn_clickHandler(event:MouseEvent):void ????????????{ ????????????????//ws.getWeatherbyCityName(city.text); ????????????????//第二中调用webservice的方法 ????????????????ws.getWeatherbyCityName.send(); ????????????} ???????????? ???????????? ???????? ]]> ???? </ fx:Script > ???? < fx:Declarations > ???????? <!-- ?将非可视元素(例如服务、值对象)放在此处? --> ???????? ???????? <!-- flex?与普通java类通信 --> ???????? < s:RemoteObject? id ="serv" ?destination ="myservice" ?fault ="serv_faultHandler(event)" ?result ="serv_resultHandler(event)" > ???????????? ???????? </ s:RemoteObject > ???????? ???????? <!-- ?flex?与服务器交互 --> ???????? < s:HTTPService? id ="service" ?fault ="service_faultHandler(event)" ?result ="service_resultHandler(event)" ?url ="http://localhost:8080/flexdemo/simpleServiceServlet" > ???????????? ???????? </ s:HTTPService > ???????? ???????? <!-- flex与webservice交互这里调用一个天气预报的webservice --> ???????? < s:WebService? id ="ws" ? ??????????????????????wsdl ="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" ? ??????????????????????fault ="ws_faultHandler(event)" ? ??????????????????????result ="ws_resultHandler(event)" ? ??????????????????????showBusyCursor ="true" > ???????????? <!-- ?第二种调用webservice的方法<s:operation> --> ???????????? <!-- ?<s:operation?name="getWeatherbyCityName">?webservice中的方法名 --> ???????????? < s:operation? name ="getWeatherbyCityName" > ???????????????? <!-- 传递的参数 --> ???????????????? < s:request > ???????????????????? <!-- 参数名称必须与webservice中定义的参数名一致否则调用不成功报错 --> ???????????????????? < theCityName > ????????????????????????{city.text} ???????????????????? </ theCityName > ???????????????? </ s:request > ???????????? </ s:operation > ???????????? ???????? </ s:WebService > ???????? ???????? ???? </ fx:Declarations > ???? < s:TextInput? x ="488" ?y ="72" ?id ="city" /> ???? < s:Button? x ="633" ?y ="72" ?label ="查看" ?id ="btn" ?click ="btn_clickHandler(event)" /> ???? < s:Label? x ="224" ?y ="128" ?id ="lbl" ?width ="820" ?height ="376" /> </ s:Application > ????????初次接触flex的朋友,看上面的肯定很迷惑,因此这里录制了视频教程,视频的质量是蛮好的,该视频从头至尾演示了flex4整合Java的过程.为了方便在windows平台下播放,该视频默认导出格式为exe,在此说明该文件并非病毒,实乃视频文件,大家可放心观看.点我下载flex4与Java交互演示视频 ????????点我下载完整的项目文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |