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

MyEclipse创建webservice服务器初步搭建,以供android手机调用

2014-05-15 09:36 295 查看
转载自http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.html

1

今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端,并相互传递数据。就算调用别人的服务时,也能知道大概是怎么样实现的。

WebService一般分为.Net版和Java版,今天我们主要来实现Java版的WebService,.Net版本的还是比较简单的。

照例,轻松一笑:

波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,所以...”
波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”





什么是WebServices?

它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。

关键的技术和规则

在构建和使用Web Service时,主要用到以下几个关键的技术和规则:

1.XML:描述数据的标准方法.

2.SOAP:表示信息交换的协议.

3.WSDL:Web服务描述语言.

4.UDDI:通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。

XML

可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。

SOAP

SOAP是web service的标准通信协议,SOAP为simple object access protocoll的缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。

WSDL

WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。

UDDI

将web service进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己的web service进行注册发布供使用者查找.然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有IBM等4家UDDI商用注册网站。因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务方完全可以不进行UDDI的注册。

创建并发布自己的WS

1 安装MyEclipse

2 配置Tomcat

打开MyEclipse





菜单栏 –> File –> New –> Web Service Project





在这里,我们使用JAX-WS方式。

JAX-WS

Jax-WS是Java1.6中才有的,新的WebService模式,基于注解的方式配置WebService,很类似Asp中的WebService,难度已经比Xfire方式的配置降低了很多.

REST(JAX-RS)

用的比较少

Xfire(已过时)

配置比较繁琐

创建Service中的包及类库,实现自己的业务。

我们创建的是一个用户管理系统,自然需要来管理用户。





发布WS













到此WS发布完成,接下来配置TomCat





在弹出的窗体中依次展开 MyEclipse ->Servers –>Tomcat













对着项目右击添加库文件













到此,所有步骤都以配置完毕 开始部署





启动TomCat





在工具栏中找到部署图标









部署完成,打开IE进行测试

输入url:http://localhost:8080/UserMgrService/UserInfoPort?wsdl 即可打开如上界面

以上是转载,下述是android测试

2 .android端

导入ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar包

public static int test() {
String url = "http://192.168.0.89:8080/UserMgrService/UserInfoPort?wsdl";
String nameSpace = "http://test1.service.xz.momo.com/";
int result = 0;
String methodName = "getUserInfo";
SoapObject request = new SoapObject(nameSpace, methodName);

//以下方法添加参数,参数名必须与webservice里的参数名保持一致,另外就是以java方式创建的webservice即使名称相同也 接收不到参数

//在网上搜索方案都说发现用arg0...代替,但是dotNet要设置为false,如果为true,即使使用arg0...也无法获取参数

//request.addProperty("xxxxx", xxxxx);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = request;
envelope.dotNet = false;
HttpTransportSE ht = new HttpTransportSE(url, 30000);
try {
ht.call(null, envelope);
SoapPrimitive primitive = (SoapPrimitive) envelope.getResponse();
Log.i("cenco", "primitive=" + primitive);
} catch (Exception e) {

}

return result;
}

开启异步线程调用此方法即可返回字符串

3.如果引用外部jar包,需要将jar包同步放到tomcat的lib目录下

4.安装XAMPP 修改根目录

本人电脑装的XAMPP集合软件,其一键安装PHP+MySQL+Apache非常方便。但其安装以后,网站的根目录默认在XAMPP的子文件夹 htdocs下面,平常想要在电脑上快速打开该目录非常不方便。毕业后没有怎么弄网站,不觉得繁琐,现在开始折腾WP,一天开个几次这个目录,觉得实在耐心不行了。于是把网站根目录修改了,其流程如下。

第一,打开httpd.conf文件。其位置位于XAMPP安装目录下面的“apacheconf”文件夹里。
第二,修改代码。在httpd.conf文件中找到如下两行代码,并进行修改。(C:/xampp/htdocs为我本人网站原始根目录)
DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> 将两个目录更改为你所希望的目录即可,如我修改如下:(C:/Web为我本人新的网址根目录)
DocumentRoot "C:/Webs" <Directory "C:/Webs">;

第三,在目标文件夹下放置一张图片,重启Apache,浏览器打开可以查看到即成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐