Java与Flex学习笔记(21)----Flex与Java通信方式之WebService
2012-10-14 21:17
609 查看
今天终于把Flex与Java通信的第三种方式给整出来了。之前之所以没有弄是因为本人不知道怎么建立WebService服务。而网上找到的都是用的免费的天气预报服务。好吧,大家学习这种通信式只是为了做天气预报吧,只是我可不敢苟同。好在今天终于弄出来了。
前面我们知道Flex与Java有3种通信方式:
1. Flex通过RemoteObject方式与普通Java类通信。
2. Flex通过HttpService方式与服务器类通信,如servlet。
3. Flex通过WebService与Java通信.
WebService的知识我就不说了,但是Flex通过WebService与Java通信方式却是很简单的。
下面先建立一个WebService地址。
在Eclipse里新建一个web工程webserviceDemo,在里面新建一个类LoginService.java,代码如下所示:
这个类里有个方法login(),很简单。
接着对着这个类右键,选择WebServiceà ---> Creata Web Service,如下图所示:
选择默认的配置点击“Finish”即可,eclipse会自动帮我们建立WebService地址。
下面我们测试我们刚才建立的WebService服务。在地址栏输入http://localhost:8000/webserviceDemo/services/LoginService?wsdl,如果页面如下所示,则说明配置成功:
接着在Flex中用WebService通信。
新建一个flex页面webserviceDemo.mxml,代码如下所示:
接着运行这个页面,如果输入的是用户名为“admin”与密码为“123”登陆成功反之则失败的话,则表明通讯成功。
注意,如果你了解WebService的话你就会明白他们是通过将数据组装成xml传送数据的。本例子中建立WebService服务在webserviceDemo工程中,而Flex页面则是在另一个工程中,由此可以知道:WebService可以是不同工程间通信的桥梁!
原创文章,转载请注明出处:http://www.dianfusoft.com/
前面我们知道Flex与Java有3种通信方式:
1. Flex通过RemoteObject方式与普通Java类通信。
2. Flex通过HttpService方式与服务器类通信,如servlet。
3. Flex通过WebService与Java通信.
WebService的知识我就不说了,但是Flex通过WebService与Java通信方式却是很简单的。
下面先建立一个WebService地址。
在Eclipse里新建一个web工程webserviceDemo,在里面新建一个类LoginService.java,代码如下所示:
package com.ldfsoft.service; public classLoginService { public boolean login(Stringusername,String passworld){ boolean result=false; if("admin".equals(username)&&"123".equals(passworld)){ result=true; } return result; } }
这个类里有个方法login(),很简单。
接着对着这个类右键,选择WebServiceà ---> Creata Web Service,如下图所示:
选择默认的配置点击“Finish”即可,eclipse会自动帮我们建立WebService地址。
下面我们测试我们刚才建立的WebService服务。在地址栏输入http://localhost:8000/webserviceDemo/services/LoginService?wsdl,如果页面如下所示,则说明配置成功:
接着在Flex中用WebService通信。
新建一个flex页面webserviceDemo.mxml,代码如下所示:
<?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"pageTitle="WebService测试"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; .txt{ fontSize:18; } </fx:Style> <fx:Script> <![CDATA[ import mx.controls.Alert; importmx.rpc.events.FaultEvent; importmx.rpc.events.ResultEvent; protected function operation1_resultHandler(event:ResultEvent):void { // TODO Auto-generated method stub varresult:Boolean=event.result as Boolean; if(result){ Alert.show("登陆成功~","提示"); }else{ Alert.show("登陆失败~","提示"); } } protected functionoperation1_faultHandler(event:FaultEvent):void { // TODO Auto-generated method stub Alert.show(event.fault.message,"提示"); } protected functionlogin_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub //发送请求 webSer.login.send(); } ]]> </fx:Script> <fx:Declarations> <!--注意WebService中的参数个数与顺序要与发布地址中的参数一样--> <s:WebService id="webSer" wsdl="http://localhost:8000/webserviceDemo/services/LoginService?wsdl"> <s:operation name="login" result="operation1_resultHandler(event)"fault="operation1_faultHandler(event)"> <s:request> <username>{username.text}</username> <passworld>{password.text}</passworld> </s:request> </s:operation> </s:WebService> </fx:Declarations> <s:Label x="351" y="158" text="账户:" fontSize="18" styleName="txt"/> <s:TextInput x="439" y="154" id="username" styleName="txt"/> <s:Label x="351" y="201" text="密码:" fontSize="18" id="password_txt" styleName="txt"/> <s:TextInput x="441" y="196" id="password" styleName="txt"displayAsPassword="true"/> <s:Button x="461" y="273" height="34" label="登陆" fontSize="18" id="login" styleName="txt"click="login_clickHandler(event)"/> </s:Application>
接着运行这个页面,如果输入的是用户名为“admin”与密码为“123”登陆成功反之则失败的话,则表明通讯成功。
注意,如果你了解WebService的话你就会明白他们是通过将数据组装成xml传送数据的。本例子中建立WebService服务在webserviceDemo工程中,而Flex页面则是在另一个工程中,由此可以知道:WebService可以是不同工程间通信的桥梁!
原创文章,转载请注明出处:http://www.dianfusoft.com/
相关文章推荐
- Java与Flex学习笔记(5)----Flex与Java通信之HttpService方式
- Java与Flex学习笔记(4)----Flex与Java通信之RemoteObject方式
- Java与Flex学习笔记(15)----Flex中的Application与Module间的通信
- Java网络编程学习笔记(4)非阻塞通信
- flex学习笔记7----大数据量通信AMFPHP的安装
- 我的java学习笔记(21)关于框架定位
- Java之DOM4J方式解析XML文件(学习笔记)
- (21)Java学习笔记——常用对象API /Scanner类
- Android(java)学习笔记70:同步中的死锁问题以及线程通信问题
- (48)Java学习笔记——多线程 / 线程间通信 / 线程组 / 线程池 /
- Java Web 学习笔记之十二:JBoss RestEasy处理跨域OPTIONS请求方式
- 黑马程序员—11—java基础:有关线程通信的学习笔记和学习心得体会
- Java与Flex学习笔记(18)----Flex中创建右键菜单
- 黑马程序员--Java学习笔记之多线程(自定义线程的两种方式对比、线程状态、线程安全)
- java反射学习笔记1--CLass类实例化的三种方式
- Java与Flex学习笔记(18)----Flex中创建右键菜单
- 【Todo】Java学习笔记 100==100 & Reflection API & Optional类详解 & DIP、IoC、DI & token/cookie/session管理会话方式
- Java学习笔记46(多线程三:线程之间的通信)
- Java与Flex学习笔记(17)---Flex+Red5实现在线视频播放
- java 多线程学习笔记1-概念,实现方式