本博客是我第一次接触webservice时学习的笔记,欢迎一起分享交流。
本博客的实验均是我验证过的,且每一步都是必须的。
1、环境配置
myeclipse8.5
JDK1.7
由于我安装的myeclipse8.5的JDK版本不够,所以我先是换了JDK1.8,后来又说我JDK版本太高,所以我建议直接用JDK1.7,可以避免很多不必要的麻烦。
2、webservice的好处和原理
在别的博客上找的,作为参考
http://www.cnblogs.com/ShaYeBlog/archive/2012/09/03/2668840.html
3、hello程序
3.1建立一个ws_server服务端
其中PersonService.java类只是提供一个输出hello的功能,具体代码如下:
package com.rl.server;
import javax.jws.WebService;
@WebService
public class PersonService {
public String sayhello(String name){
return name+"hello";
}
}
Publisher的代码如下,publisher的功能是提供一个发布的功能,(注意:endpoint是一个对外发布的接口,其中的网址是发布服务的主机IP,8099是指定的端口(可以随意选)):
package com.rl.server;
import javax.xml.ws.Endpoint;
public class Publisher {
public static void main(String[] args) {
Endpoint.publish("http://10.139.47.241:8099/hello", new PersonService());
}
}
运行Publisher的程序对外提供服务。
3.2wsdl的作用
webservice是一种可以不用管系统不管编程语言的基于soap协议的web服务,只要遵循一定的规则传输消息就可以使得机器之间的相互通信,这个规则就写在wsdl中,首先我们要得到一个wsdl文档,打开在上面Endpoint.publish中自己的网址,在后面加入?wsdl,就可以获得服务端约定的消息传送的约定。我自己在验证的时候输入的界面如下:
其中,wsdl中service、binding、portType、message、types的具体意思可以自己百度。
找一个空的文件夹,将wsdl下载的东西保存在里面。具体步骤如下:
1、建立一个空的文件夹
2、打开cmd窗口,先找到空文件夹的目录,在其中输入命令如下:
wsimport -s . -p com.rl.stub wsdl链接地址
-s是生成源代码
-p是代码生成后的包名
后面的com.rl.stub是包名
3、完成后可以在文件夹下找到对应的源码
4、建立一个ws_client的包,将生成的包复制进去
5、可以看到com.rl.stub中引入的类
3.3客户端
建立一个客户端的包
客户端Client的代码如下:
package com.rl.client;
import com.rl.stub.PersonService;
import com.rl.stub.PersonServiceService;
public class Client {
public static void main(String[] args) {
//1、创建服务访问点集合对象
PersonServiceService pss = new PersonServiceService();
//2、获得服务点访问的类,用get+port的名字(PersonServiceServicePort)的名字getPersonServicePort
PersonService ps = pss.getPersonServicePort();
//3、调用服务端的方法
String result = ps.sayhello("薛之谦");
System.out.println(result);
}
}
运行结果如下:
运行结果标明我们调用服务端的方法成功了。
4、小结
第一次写博客,第一次接触webservice,欢迎交流。里面的主机地址我全都涂鸦或者修改过。