WebService定义: 顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。
WSDL – WebService Description Language – Web服务描述语言。
通过XML形式说明服务在什么地方-地址。
通过XML形式说明服务提供什么样的方法 – 如何调用。
服务端给客户端提供的一个说明书
约束了客户端和服务端之间通信的消息格式
SOAP-Simple Object Access Protocol(简单对象访问协议)
SOAP作为一个基于XML语言的协议用于有网上传输数据。
SOAP = 在HTTP的基础上+XML数据。
SOAP是基于HTTP的。
SOAP的组成如下:
Envelope – 必须的部分。以XML的根元素出现。
Headers – 可选的。
Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。
一、开发服务端程序
1 @WebService //用jdk发布服务时,必须加此注解 2 public class PersonService { 3 4 public String sayHello(String name){ 5 return name + " hello"; 6 } 7 }
1 public class Publisher { 2 public static void main(String[] args) { 3 //第一个参数:发布服务的地址 4 //第二个参数:创建服务类的对象 5 Endpoint.publish("http://192.168.22.1:8099/hello", new PersonService()); 6 } 7 }
使用Endpoint做发布 Endpoint.publish("http://192.168.15.82:8098/hell", new UserServiceImpl()); 注意:服务类 webservice的服务类中必须至少有一个方法 jdk发布webservice服务的时候服务类上必须需要加@webService注 服务类的方法 1.不能是静态的 * 2.不能是final jdk对webservice发布带有接口的服务类支持不好,对soap1.2协议也有缺陷
二、客户端调用程序
wsimport: 参数:-s 生成源代码 -p生成代码后 的包名
步骤: (1) 找一个空文件夹 通过命令行,切换到空文件夹目录 执行:wsimport -s . -p com.xxx.xx http://192.168.15.82:8099/hello?wsdl
(2)把代码拷贝到客户端的工程中
(3)服务端的调用
//1.创建服务访问点集合对象 PersonServiceService pss = new PersonServiceService();
//2.获得服务点绑定的类,使用get加上port的名字(PersonServicePort), getPersonServicePort PersonService ps = pss.getPersonServicePort();
//3.调用服务端的方法 String result = ps.sayHello("zhangsan"); System.out.println(result);