WebService学习笔记系列(一)
来源:互联网 发布:微信公众号php源代码 编辑:程序博客网 时间:2024/05/19 15:22
webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言、跨平台的。
webservice的客户端与服务端进行交互的时候使用xml来传递数据。
soap协议,即简单对象访问协议,它是webservice的客户端与服务端进行交互的时候遵守的一个协议。
在服务端调用webservice服务时,我们可以通过Java jdk自带的一个命令wsimport,根据服务说明书生成本地Java代码,我们直接操作这些Java代码就可以调用webservice.
wsimport -d . wsdl地址 生成本地class文件
wsimport -s . wsdl地址 生成本地java文件,
wsimport -s . -p 包名 wsdl地址 生成本地java文件,并且指定包名
然后直接操作这些Java文件来调用服务端程序。
来看一段代码:
在服务端发布一个类:
发布程序,运行main方法,即表示发布:
public class PublishService { public static void main(String[] args) { //java提供了一个专门的类,用来用来将一个Java应用程序发布成webservice /** * 两个参数,分别是 * 1.服务类对外的访问地址 * 2.服务类的一个实例 */ Endpoint.publish("http://127.0.0.1:8888/helloService", new HelloService()); }}
所发布的类:
//被发布的类上面必须有@WebService注解@WebServicepublic class HelloService { /** * 被发布的类中必须包含一个非静态的,非final的public方法 */ public void helloWebService(){ System.out.println("hello webservice!"); } public User getUser(){ return new User("张三","zhangsan"); }}
User.java
public class User { private String username; private String nickname; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public User(String username, String nickname) { this.username = username; this.nickname = nickname; }}
通过wsimport获得服务器端的类:
成功获得服务器端的类,在F盘可以看到这些类,然后新建一个客户端project,把这些类拷贝进去,在客户端直接操作这些类就可以访问服务端程序:
客户端程序:
public class MyTest { public static void main(String[] args) { HelloService helloService = new HelloServiceService() .getHelloServicePort(); User user = helloService.getUser(); System.out.println(user.getNickname()+","+user.getUsername()); }}
客户端输出:
成功拿到服务端数据。
如果调用helloWebService()方法
public class MyTest { public static void main(String[] args) { HelloService helloService = new HelloServiceService() .getHelloServicePort(); helloService.helloWebService(); }}
则服务端输出:
成功调用服务端。
如果要传递视频,音频图片等消息,可以通过InputStream和OutputStream来实现。
这是通过wsimport的方式来调用服务端程序,下一篇我们看另外一种调用方式。
- WebService学习笔记系列(一)
- WebService学习笔记(一)
- webservice学习笔记(一)
- WebService学习系列(一)------初识WbeService
- WebService学习笔记系列(二)
- WebService学习笔记系列(三)
- WebService学习笔记系列(四)
- WebService 学习笔记一
- Apache CXF Webservice学习笔记(一)
- webservice的学习笔记(一)
- Webservice学习笔记(一)简介
- axis2 webservice学习笔记一
- webservice系列(一) webservice基础介绍
- Webservice笔记(一)
- webservice笔记(一)
- 学习WebService(一)
- WebService学习(一)
- webservice学习(一)
- eclipse 中添加工程 Some projects cannot be imported because they already exist in the workspace
- XSS Filter Evasion Cheat Sheet 中文版
- ALAsset,ALAssetsLibrary,ALAssetsgroup常见属性及用法
- willMoveToParentViewController和didMoveToParentViewController
- Swift小计
- WebService学习笔记系列(一)
- 使用AVFoundation完成二维码扫描
- ActiveMQ与RabbitMQ之简单对比介绍
- C# array类的相关方法
- LINUX下GDB调试
- Shortcut for some CSS properties: padding, background
- HDU1800 Flying to the Mars Tire树
- MFC中自定义类访问主对话框控件
- android的数据存储方式