WebService学习笔记系列(一)

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方法,即表示发布:

{(String[] args) {//java提供了一个专门的类,用来用来将一个Java应用程序发布成webservice/*** 两个参数,分别是* 1.服务类对外的访问地址* 2.服务类的一个实例*/Endpoint.publish(“http://127.0.0.1:8888/helloService”, new HelloService());}}

所发布的类:

{/*** 被发布的类中必须包含一个非静态的,非final的public方法*/(){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;}(String username) {this.username = username;}public String getNickname() {return nickname;}(String nickname) {this.nickname = nickname;}public User(String username, String nickname) {this.username = username;this.nickname = nickname;}}

通过wsimport获得服务器端的类:

成功获得服务器端的类,在F盘可以看到这些类,,然后新建一个客户端project,把这些类拷贝进去,在客户端直接操作这些类就可以访问服务端程序: 客户端程序:

public class MyTest {(String[] args) {HelloService helloService = new HelloServiceService().getHelloServicePort();User user = helloService.getUser();System.out.println(user.getNickname()+”,”+user.getUsername());}}

客户端输出:

成功拿到服务端数据。

如果调用helloWebService()方法

public class MyTest {(String[] args) {HelloService helloService = new HelloServiceService().getHelloServicePort();helloService.helloWebService();}}

则服务端输出:

成功调用服务端。 如果要传递视频,音频图片等消息,可以通过InputStream和OutputStream来实现。 这是通过wsimport的方式来调用服务端程序,下一篇我们看另外一种调用方式。

然后拍一些美得想哭的照片,留给老年的自己。

WebService学习笔记系列(一)

相关文章:

你感兴趣的文章:

标签云: