基本概念:
Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
面向服务的体系结构(Service-Oriented Architecture,SOA)中,一组以这种方式交互的 Web 服务定义了特定的 Web 服务应用程序。Web Service 最基本的组成部分为服务的提供者(Service Provider)和服务的请求者(Service Requester)。这看起来很像 C/S 架构的软件,与之不同的是,Web Service 两端的应用是通过基于标准的 XML 格式的协议进行通信的,这种最常用的协议就是 SOAP(Simple Object Access Protocol)。当然,Web Services 不简单地只是按这种方式进行通信。按照 Web Service 的相关标准描述,服务的提供者应该首先通过 WSDL(Web Service Definition Language)和 UDDI (Universal Description, Discovery, and Integration)发布它所提供的服务到一个统注册这些服务信息的存储库中去。这样,服务的请求者就也可以通过 WSDL 和 UDDI 发现到服务提供者提供的服务,并可以通过应用的调用方法来使用这个服务了。
WebServices实现步骤
1、创建一个普通Java项目
a) 创建业务接口
public interface HelloServies {
public void sayHello(String name);
}
b) 创建实现类
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name="HelloServices",serviceName="helloServices",targetNamespace="http://localhost/charter/book")
@SOAPBinding(style=SOAPBinding.Style.RPC)
public class HelloServicesImpl implements HelloServies {
public void sayHello(String name) {
// TODO Auto-generated method stub
System.out.println("-------"+name+"------------");
}
}
c) 发布WebServices服务
public static void main(String[] args) {
// TODO Auto-generated method stub
Endpoint.publish("http://localhost:8080/helloServices", new HelloServicesImpl());
System.out.println("webservcies start");
}
d) 可以通过访问http://localhost:8080/helloServices?wsdl测试发布的webServcies
2、 通过CMD进入刚才新建类的类中的目录中去。执行如下命令
wsimport -keep http://localhost:8080/helloServices?wsdl
将此WebServices客户端代码生成。
3、 创建客户端类
public static void main(String[] args) {
// TODO Auto-generated method stub
HelloServices_Service hHelloServices=new HelloServices_Service();
HelloServices services= hHelloServices.getHelloServicesPort();
services.sayHello("tom");
}
4、测试调用.OK