WebService

** 什么是Web Services?**

  • Web Services 是应用程序组件
  • Web Services 使用开放协议进行通信
  • Web Services 是独立的(self-contained)并可自我描述
  • Web Services 可通过使用UDDI来发现
  • Web Services 可被其他应用程序使用
  • XML 是 Web Services 的基础

一言以蔽之:WebService是一种跨编程语言和跨平台的远程调用技术。

** 它如何工作?**

  • 基础的 Web Services 平台是 XML + HTTP。
  • HTTP 协议是最常用的因特网协议。
  • XML 提供了一种可用于不同的平台和编程语言之间的语言。

** Web services 平台的元素:**

  • SOAP (简易对象访问协议)
  • UDDI (通用描述、发现及整合)
  • WSDL (Web services 描述语言)

** WebService的简单实现 **

1、服务端程序

  • 新建一个接口类,使用JDK的注解
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name="helloWS")
public interface IHelloWS {
    @WebMethod
    public String sayHello(String name);
}
  • 实现类
package com.zlb.service;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name="helloWS")
public interface IHelloWS {
    @WebMethod
    public String sayHello(String name);
}
  • JDK版 发布
         //地址
        String address = "http://127.0.0.1:8989/WebServices_service";
        
        //java  JDK版  发布
        Endpoint.publish(address, new HelloWS());
  • CXF版发布
       //地址
        String address = "http://127.0.0.1:8989/WebServices_service";
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        //设置Service Class
        factory.setServiceClass(HelloWS.class);
        factory.setAddress(address);
        factory.create();
  • 生成WSDL文档
    在浏览器输入地址http://127.0.0.1:8989/WebServices_service/helloWS?wsdl 就可以了

2、客户端程序

  • 利用JDK自带的wsimport命令生成客服端代码
    启动cmd窗口,进入src文件夹下
    输入命令:
wsimport -keep http://127.0.0.1:8989/WebServices_service/helloWS?wsdl 
WebService_第1张图片
wsimport命令

刷新客户端程序,就会有一个新的包出现

还有一种方法,就是将服务端生成的WSDL拷贝到一个文件,以wsdl命名 保存到客户端,利用JDK自带的wsimport命令:

wsimport -keep E:\WorkSpaceSSH\WebServices_client\src\HelloWS.wsdl
  • 测试
        //WSImport 方式
        HelloWSService factory = new HelloWSService();
        HelloWS ws = factory.getHelloWSPort();
        
        ws.sayHello("tom");

服务端的程序需要一直启动着,否客户端会失败

你可能感兴趣的:(WebService)