Web Service

Web Service:

 

       简介:Web Service是一个平台独立的,低耦合的,基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

 soap协议:

    soap协议是web service的通信协议。

    soap=http+xml 即soap协议在通信数据时依然采用http+协议,不过通信的数据是具有特定规格的xml。

wsdl

web service description language 描述语言。

    web service的描述者,web服务会有自己的wsdl,要发现某个web服务就需要知道其对应的wsdl,之后才可以远程调用到互联网中的web服务。

 

一、WebService  开发流程:

一、 定义Web-Service

    

public interface WeatherInterface {
    public String queryWeather(String cityName);
}

@WebService //注解标识  此为一个webservice组件
public class WeatherImpl implements WeatherInterface{
    @Override
    public String queryWeather(String cityName) {
        System.out.println("city:"+cityName);
        return "晴天~微风~";
    }
}

 

二、发布 Web-Service

public static void main( String[] args ){
    //                 服务地址                       服务实现
    Endpoint.publish("http://ip:8989/weather",new WeatherImpl());
}                                    名称任意

 

三、WSDL

 访问:http://localhost:8989/weather?wsdl  【服务地址?wsdl】,查看服务的说明,亦验证服务是否发布成功。

 

调用流程:

一、创建服务客户端

  wsimport -s . http://localhost:8989/weather?wsdl
    会在当前目录下,生成客户端代码

二、调用

//将客户端代码,复制到项目中,并调用即可
public static void main( String[] args ){
    //创建web-service并获得Port对象
    WeatherImpl port = new WeatherImplService().getWeatherImplPort();
    //通过Port对象调用远程过程 (RPC)
    System.out.println(port.queryWeather("北京"));
}

   细节:

serviceName=修改默认服务名;

name=修改默认Port类型

二、Web-Service框架

通过CXF,将web-service更好的和web项目集成。

   在现有的spring工厂中,将一个web-service,作为一个组件,纳入工厂,完成web-service 和现有项目的整合

CXF依赖:



    org.apache.cxf
    cxf-rt-frontend-jaxws
    3.1.10


    org.apache.cxf
    cxf-rt-transports-http
    3.1.10

服务端集成:

1、定义Web-Service

@WebService
public class WeatherImpl implements WeatherInterface{
    @Override
    @WebMethod(operationName = "queryWeather")
    public String queryWeather(@WebParam(name = "city") String cityName) {
        System.out.println("city:"+cityName);
        return "晴天~微风~";
    }
}

2、 将Web-Service纳入工厂

 

3.web.xml中




    cxf
    org.apache.cxf.transport.servlet.CXFServlet


    cxf
    /ws/*





    org.springframework.web.context.ContextLoaderListener


    contextConfigLocation
    classpath:applicationContext.xml

服务器启动,工厂启动,服务发布

服务器关闭,工厂关闭,服务关闭

客户端集成:

1、生成客户端代码

 wsimport -s . http://localhost:8989/weather?wsdl
    会在当前目录下,生成客户端代码

2、将客户端纳入工厂


    
    
    
    
    
        
    

 

3、测试:

启动项目,启动工厂,在Controller中调用本地业务。

 

 

 

 

 

你可能感兴趣的:(Web Service)