webservice 开发小解
这几天需在android上需要通过webservice进行数据的获取,以前虽然知道webservice但是从来没有动手去操作过,这次因为接触到了,所以就尝试去 了解一下webservice的开发过程以及调用过程,写篇博客记录一下。 首先我们应该了解一下什么是webservice,简单来说webservice就是一种客户端与服务器,服务器与服务器之间数据的一种交互方式。他通过一种机器 可以理解的格式标记WSDL(web service description language)来描述要公开的接口,WSDL它是以XML格式来表现的。通过他公开的接口,我们可以 传入一些必要数据来获取我们想要的数据。在传入数据以及获取数据的过程中他又基于了一套协议(SOAP),对如何进行参数传递如果获取结果进行 规范。也就是我们想传入数据给一个公开的接口,那么首先要用SOAP协议将这些数据进行包装,然后将包装后的数据使用HTTP或者TCP或者其他协议 传递给目的机器。然后我们怎样去获取WSDL这样的文件呢?如果你需要将你的接口公布于全世界,那么你就需要在UDDI上进行注册,UDDI是一个基于 XML跨平台的描述规划,可以世界范围内的企业在互联网上发布自己提供的服务。这些东西就构成了webservice了。一上只是浅略的说了一下我对web- service的理解,还有疑惑的可以自己google,一搜一大把。 下面我们来通过不同的方式来构建webservice,并且去向他获取数据。 一:通过JAX-WS方式来部署webservice 开发环境:MyEclipse8.5,Tomcat6.0.37。 1.通过MyEclipse创建WebServiceProject工程MyService,然后新建一个类MyServiceServer,定义一个方法 。 package com.lonuery.test; public class MyServiceServer { public String play(String userName){ return userName + "--创建了第一个WebService工程"; } } 2.菜单栏->File->New->other->MyService->Web Services->Web Service 3.点击继续,选项按照上面的选项进行勾选。 输入你要创建webService的类,要输入包名,勾选上WSDL in Project。记住你的Service name 和 Service port。然后点击finish。我们就会看到 在我们之前创建的MyServiceServer类的同一个包下会自动创建一个MyServiceServerDelegate的类,至此webService已经开发并发布完毕。 接下来就是添加一些相关联的包,在MyEclipse中就能够直接关联,右击项目->properties->Java Build Path->Libraries->add Library-> MyEclipse Libraries 接下来就是启动Tomcat,编写调用的客户端。 启动Tomcat:工具栏->点击一个服务器类型的小标志->点击Tomcat 6.x->Start。启动完毕后将这个项目部署到Tomcat中,与console在同一个工具栏中有一个Server 的工具,如果没有,点击Window->Show View 选择Server将其显示出来。然后在Server栏中有一个Tomcat 的标志,右击,选择Add Deployment。会出现一个弹窗 点击Project 选择你所创建的工程,点击finish。这样WebService就算部署完毕了。 编写客户端: 创建一个Java Project:MyServiceProject,创建一个类ClientPlay。然后如上述步骤,在步骤3的时候,我们在创建Web Service project的时候,会看见在MyEclipse 的目录下会有一个My Service Client的目录。点击My Service Client, 点击继续> 在 WSDL URL的选项框中输入 WSDL的地址。这个地址在,我们之前创建的MyService工程->WebRoot->WEB-INF->wsdl 我们可以看见有个叫做 MyServiceServerService.wsdl 的文件,进去查看,找到service的标签 <service name="MyServiceServerService"> <port binding="tns:MyServiceServerPortBinding" name="MyServiceServerPort"> <soap:address location="http://localhost:8080/MyService/MyServiceServerPort"/> </port> </service> 上面的那个address location地址就是WSDL的地址。将这个地址复制到URL的输入框,点击next,他会在我们的Client工程下自动创建一些的的类。 接下来我们就可以在ClientPlay类中去写调用WebService的方法了: public static void main(String[] args) { ServerPlayDelegate server = new ServerPlayService().getServerPlayPort(); System.out.println(server.play("那里格朗")); } 运行的结果如下: 至此我们的webService创建完毕并且发布出去了,客户端调用webService的例子也成功获取到数据。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |