您的位置:首页 > 编程语言 > Java开发

Flex4和Java交互

2012-09-18 15:56 218 查看
http://www.blogjava.net/sxyx2008/

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交互演示视频

视频截图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: