初学FLEX做的小练习(三)-数据服务(FLEX与WebService的通信)

本文详细介绍如何使用MyEclipse创建WebService,并通过Flex应用与其进行通信。包括WebService项目的搭建、接口及实现类的设计、配置文件的调整,以及Flex端的WebService调用实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

六、FLEX与WebService的通信,

在MyEclipse新建一个Web Service Project,MyEclipse5.5自己就会建立一个用XFire实现WEB SERVICE的工程。

1)新建接口文件IWeather.java

package ws;

public interface IWeather {
    public String getWeatherState(String city);
}

 

2)新建实现文件Weather.java

package ws;

import java.util.HashMap;
import java.util.Map;


public class Weather implements IWeather{

    //http://localhost:8080/wsp1/services/getWeatherState?wsdl
    static Map map = new HashMap();
    static {  //输入shanghai 或beijing
        map.put("beijing","sunning");
        map.put("shanghai","cloud");
    }
    public String getWeatherState(String city){
        return (String)map.get(city);
    }
}

 

3)修改配置文件WebServices/services.xml

<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns="http://xfire.codehaus.org/config/1.0">
  <service>
    <name>getWeatherState</name><!-- 服务名称 -->
    <namespace>ws/getWeatherState</namespace><!-- 指定命名空间 -->
    <serviceClass>ws.IWeather</serviceClass><!-- 指定服务的接口 -->
    <implementationClass>ws.Weather</implementationClass><!-- 指定接口的实现类 -->
  </service>
< /beans>

Web Services Project工程目录纵览。

 

七、部署,测试

启动TOMCAT6,并如下图部署WEB SERVICE工程wsp1到TOMCAT上,

浏览器里输入http://localhost:8080/wsp1/services/getWeatherState?wsdl,测试下,如果出现XML格式的,就OK。

七、与Web Service通信的FLEX部分

1)src/ui/dp/ws.mxml

<?xml version="1.0" encoding="utf-8"?>
< mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
 
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    
     <mx:WebService id="ws1" wsdl="http://localhost:8080/wsp1/services/getWeatherState?wsdl"> <!--声明一个WebService对象ws1,指明WSDL路径-->
        
         <mx:operation name="getWeatherState" result="showInfo(event)" fault="Alert.show('error');">
            
            
         </mx:operation>
     </mx:WebService>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.events.ResultEvent;
            import mx.rpc.events.FaultEvent;
            
            function showInfo(event:ResultEvent):void{
                mx.controls.Alert.show(event.result.toString());
            }
            
            function getWeather():void{
                ws1.getWeatherState(ti.text);
            }
        ]]>
    </fx:Script>
    <mx:Panel width="100%" height="100%">
        <mx:TextInput text="" id="ti"/>
        <mx:Button label="getWeatherstate" click="getWeather()" /><!--在TextInput里输入shanghai 或beijing,点击按钮调用Web Service的方法ws1.getWeatherState()-->
    </mx:Panel>
    
< /mx:Canvas>

 

 

相关工程代码请下载 http://download.youkuaiyun.com/detail/iamyzs/4284826

 

http://blog.youkuaiyun.com/iamyzs/article/details/7541582

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值