Flex4_WebService组件

一、Java端:

1、新建WebServiceProject,在项目名称中输入:FlexWebService,下面Framework选择XFire,点击完成。

2、新建包:com.th.services ,包上右击新建-->其它-->Web Services-->Web Service(在Strategy中选择:Create web service from java class(Bottom-up scenario),将下面的Create new Java bean 选中)-->下一步(Web service name:FlexService,Java package选择刚建的包)-->完成!自动生成了类和接口,和普通项目不同之处在于多了一个“WebServices”文件夹及下面的“services.xml”文件。 

Flex4_WebService组件

services.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://xfire.codehaus.org/config/1.0">

    <service>

        <!-- 将来Flex调用的服务名称 -->

        <name>FlexService</name>

        <serviceClass>com.th.services.IFlexService</serviceClass>

        <implementationClass>

            com.th.services.FlexServiceImpl

        </implementationClass>

        <style>wrapped</style>

        <use>literal</use>

        <scope>application</scope>

    </service></beans>

3、为IFlexService接口及实现添加登录方法:

package com.th.services;

public class FlexServiceImpl implements IFlexService {

    public String login(String userName, String userPwd) {

        String result="-1";

        if("admin".equals(userName) && "123".equals(userPwd)){

            result="0";

        }

        return result;

    }

}

4、部署运行项目,浏览器地址:http://localhost:8090/FlexWebService/services/FlexService?wsdl   如果看到的是一堆XML,说明创建成功!

二、Flex端

<?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"

               initialize="init()">

    <fx:Script>

        <![CDATA[

            import mx.controls.Alert;

            import mx.rpc.events.FaultEvent;

            import mx.rpc.events.ResultEvent;

            

            private function init():void{

                btn_login.addEventListener(MouseEvent.CLICK,login);

                

            }

            

            //登录

            private function login(event:MouseEvent):void{

                // WebService对象.方法名.send();

                webSer.login.send();

            }

            

            //返回处理

            private function resultLoginHandle(event:ResultEvent):void{

                var result:int=int(event.result.toString());

                switch(result){

                    case 0:

                        Alert.show("登录成功!","提示");

                        break;

                    default:

                        Alert.show("用户名或密码错误!","提示");

                        break;

                }

            }

            

            private function faultLoginHandle(event:FaultEvent):void{

                //返回错误处理

            }

        ]]>

    </fx:Script>

    <fx:Declarations>

        <s:WebService id="webSer" wsdl="http://localhost:8090/FlexWebService/services/FlexService?wsdl" showBusyCursor="true">

            <!--name指的是Service中的方法名,必须和服务端方法名一致-->

            <s:operation name="login" result="resultLoginHandle(event)" fault="faultLoginHandle(event)">

                <s:request>

                    <!--方法参数列表,顺序,个数与服务器端要一致-->

                    <in0>{txt_userName.text}</in0>

                    <in1>{txt_userPwd.text}</in1>

                </s:request>

            </s:operation>

            <!--有多个方法,继续如上添加 <s:operation>节点即可-->

        </s:WebService>

    </fx:Declarations>

    <s:Panel x="37" y="40" width="250" height="200" title="登录">

        <s:Label x="37" y="28" text="用户名:"/>

        <s:Label x="37" y="61" text="密    码:"/>

        <s:TextInput id="txt_userName" x="82" y="24"/>

        <s:TextInput id="txt_userPwd" x="83" y="56" displayAsPassword="true"/>

        <s:Button x="83" y="115" label="登录" id="btn_login"/>

    </s:Panel>

</s:Application>

 

你可能感兴趣的:(webservice)