加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex4与Java交互的三种通信方式

发布时间:2020-12-15 04:02:51 所属栏目:百科 来源:网络整理
导读:原文链接: http://www.blogjava.net/sxyx2008/archive/2010/07/17/326360.html ? flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. ????????软件环境:w

原文链接: http://www.blogjava.net/sxyx2008/archive/2010/07/17/326360.html

?

flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘.
????????软件环境:windows7+flex4+myeclipse8.5+blazeds
????????功能描述:分别用代码实现了三种flex4与Java通信
????????三种方式:
???????????????????????1?flex 与普通java类通信RemoteObject
???????????????????????2 flex 与服务器交互HTTPService
???????????????????????3 flex与webservice交互WebService
????????1?flex 与普通java类通信RemoteObject
???????普通Java类:????????

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
????????servlet代码????????

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交互演示视频
????????视频截图:

?


????????点我下载完整的项目文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读