flex与java通信二:webService
flex与java通信的三种方式: 1.通过httpService:你访问一个xml或者servlet,然后flex接收返回的xml数据 2.通过webService:你访问一个webService服务,然后获得文本信息 3.通过RemoteObject:可以通过blazeds来访问远程service接口方法,Flex接收一个对象。 实例来自:http://bbs.9ria.com/thread-21455-1-1.html 1、首先熟悉一个现成的webservice: 一个天气预报的WebService服务WebService服务来自WebXML,免费,而且查询信息来自国家气象局,地址如下: (关于这个服务详见:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx) 该XML结构的WSDL文档的主要结构如下: (关于该描述文档详见http://www.ibm.com/developerworks/cn/webservices/ws-wsdl/?S_TACT=105AGX52&S_CMP=cn-a-wes) 我们会调用此webservice(在mxml页面中定义一个mx:WebService)的getWeatherbyCityName(使用已定义mx:WebService的getWeatherbyCityName)方法: 2、试着通过浏览器直接调用该webservice提供的服务: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName 输入武汉得到结果:
This XML file does not appear to have any style information associated with it. The document tree is shown below. <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/"> <string>湖北</string> <string>武汉</string> <string>57494</string> <string>57494.jpg</string> <string>2014-1-4 21:16:40</string> <string>4℃/15℃</string> <string>1月5日 晴转多云</string> <string>无持续风向微风</string> <string>0.gif</string> <string>1.gif</string> <string>今日天气实况:气温:2℃;风向/风力:北风 0级;湿度:80%;空气质量:暂无;紫外线强度:中等</string> <string> 穿衣指数:冷,建议着棉衣加羊毛衫等冬季服装。 过敏指数:极不易发,无需担心过敏,可放心外出,享受生活。 运动指数:较适宜,气温较低,在户外运动请注意增减衣物。 洗车指数:较适宜,无雨且风力较小,易保持清洁度。 晾晒指数:基本适宜,天气不错,抓紧时机让衣物晒太阳吧。 旅游指数:适宜,天气较好,可尽情地享受大自然的风光。 路况指数:干燥,天气较好,路面比较干燥,路况较好。 舒适度指数:舒适,白天不冷不热,风力不大。 空气污染指数:暂无。 紫外线指数:中等,涂擦SPF大于15、PA+防晒护肤品。 </string> <string>4℃/12℃</string> <string>1月6日 多云转小雨</string> <string>无持续风向微风</string> <string>1.gif</string> <string>7.gif</string> <string>1℃/8℃</string> <string>1月7日 小雨</string> <string>无持续风向微风</string> <string>7.gif</string> <string>7.gif</string> <string> 武汉市位于江汉平原东部,长江中游与长江、汉水交汇处。东经113°41′-115°05′,北纬29°58′-31°22′。武汉市地理位置优越,长江及其最大支流汉江交汇于此,将武汉市区天然分成汉口、汉阳和武昌三镇,武汉是我国水陆交通枢纽,控长江中游之咽喉,扼南北交通之要冲,素有“九省通衢”之称,现全市货运吞吐量达亿吨以上。优越的地理位置,成为历代兵家争夺的战略要地。三国时,武汉东湖附近曾是刘备、孙权、曹操进行军事、政治活动的场所,现在留下的有刘备郊天台、吴王庙、曹操庙、洪山宝塔等古建筑。武汉现已发展为中国中部地区工业、金融、商业、科学、文化教育中心。武汉市属亚热带湿润季风气候,雨量充沛、日照充足,四季分明。总体气候环境良好,近几年30年来,年均降雨量1269毫米,且多集中在6-8月。年均气温15.8℃-17.5℃,年无霜期一般为211天-272天,年日照总时数1810小时-2100小时。景观:武当山、长江三峡、神农架等。 </string> </ArrayOfString> 3、在flex程序中调用 主要语句: a、定义:
<mx:WebService id="wsWeather" showBusyCursor="true" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" fault="onFault(event)" result="onResult(event)"/> b、调用:
wsWeather.getWeatherbyCityName("武汉");
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.collections.ArrayCollection; private function onQuery():void{ txtWeatherInfo.text =""; wsWeather.getWeatherbyCityName(CityName.text); } private function onFault(event:FaultEvent):void{ Alert.show(event.message.toString(),"Fault"); } private function onResult(event:ResultEvent):void{ var acWeatherInfo:ArrayCollection = event.result as ArrayCollection; for(var i:uint=0;i<acWeatherInfo.length;i++){ txtWeatherInfo.text += acWeatherInfo.getItemAt(i)+"n"; } } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <mx:WebService id="wsWeather" showBusyCursor="true" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl" fault="onFault(event)" result="onResult(event)"/> </fx:Declarations> <s:VGroup> <s:HGroup> <s:Label text="城市"/> <s:TextInput id="CityName"/> <s:Button id="btnQuery" label="查询" click="onQuery()"/> </s:HGroup> <mx:TextArea editable="false" width="414" height="172" id="txtWeatherInfo"/> </s:VGroup> </s:WindowedApplication>完成! 代码:http://pan.baidu.com/share/link?shareid=2181616880&uk=3173173520 ------------------------------------------------------------------分割线------------------------------------------------------------------ 在使用了blazeds的场合,也可以在proxy-config.xml配置WebService要请求的wsdl地址,在程序中用“destination”映射关系来访问该URL (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |