WebService通信简易实现

WebService

一 WS简介

ws是一种基于Http协议和XML技术,并使用WSDL描述和使用SOAP协议传输的异构系统解决方案

1.1Ws 直译网络服务,是RPC的一种实现方式

RPC–远程过程调用协议

Ws采用XML

1.2 使用场景

1.由权威机构提供的第三方小功能

​ 权威机构能偶获取一些普通没法获取的数据,然后把它封装成ws服务端,普通使用就作为ws客户端掉用服务端。

2.多种客户端整合

​ 大型应用公司为提高影响力,它会针对不同的平台提供不同的客户端。而客户端需要掉用获取数据,使用RPC,WS就是一种实现方式

3.异构系统整合
①异构系统可以简单理解为不同语言开发或不同架构多个系统

​ ----异构系统中相互作为ws服务端和客户端?问题-侵入性太强

​ 1.新增一个的时候其他系统都要改代码

​ 2.一个系统改动ip后,其他也要改动

②soa:面向服务架构

​ wsdl:描述服务

​ uddi:发现服务

​ soap:调用服务协议

二 jdk ws实现

2.1 引入

​ ws只是思想,jdk有默认实现。而且第三方框架也有实现。

2.2 ws服务端

​ 1.创建项目

​ 2.创建本地服务接口和实现类

public class HelloServiceImpl {
   
	public String sayHello(String name) {
   
        return name+"hello";
    }
}

​ 3.把本地服务标记为远程服务

​ @WebService

@WebService//标记为远程服务
public class HelloServiceImpl {
   
    @WebMethod//标记为远程服务的远程方法
    public String sayHello(String name) {
   
        return name+"hello";
    }
}

​ 4.发布服务-根据注解做一些事情

 public static void main(String[] args){
   
        //Endpoint是终端的意思
        String address  ="http://127.0.0.1:8010/hello";//发布地址
        Object implementor=new HelloServiceImpl();//发布服务
        Endpoint.publish(address,implementor);
        System.out.println("服务发布成功!");
    }

​ 5.测试

http://127.0.0.1:8010/hello?wsdl

​ 注意事项:

​ 1.jdk1.8不能直接访问服务地址,要加上?wsdl

​ 2.没有抱错,不展示内容,浏览器兼容性问题

​ 3.localhost 127.0.0.1 局域网ip 只要有一个成功就ok

2.3wsdl简介

1.是什么

​ web service description language 网络服务描述语言。简单的理解就是用来描述服务

2.结构

​ definitions:根

​ name:服务名称,类型+service

​ targetNamespace:http://倒置导包

​ service:服务接口

​ <soap:address location=“http://127.0.0.1:8010/hello”/>服务在哪个地址被掉用

​ binding:

​ <soap:binding transport=“http://schemas.xmlsoap.org/soap/http” style=“document”/>

​ transport:以什么样的传输协议来调用

​ style=“document”:表示我们wsdl文件遵循什么格式 document/rpc

​ portType:接口类型

​ 描述了有哪些接口方法

​ message:消息

​ 描述接口方法的参数和返回值消息

​ types:描述消息的类型和名称-在doucement才有,而rpc没有

归纳:
接口实现归纳法

​ 接口:portType,message,types

​ 实现:service,binding

3W

​ where:service—什么地址

​ how:binding—什么方式

​ what:portType,message,types—什么方法

​ wsdl描述服务有哪些方法,以及在什么地址以什么样的方式能够被掉用

2.4 ws客户端

1.创建项目

2.通过wsdl地址生成本地接口

​ jdk的一个工具wsimport-jdk\bin,想在任意路径掉用,需要配置path

wsimport -d . http://127.0.0.1:8010/hello?wsdl

​ 生成的是class文件

wsimport -s . http://127.0.0.1:8010
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值