WebService案例入门(基础篇)

Ubuntu 18.04搭建OpenGL ES开发环境:从EGL初始化到渲染管线验证 OpenGL ES是嵌入式与移动端图形渲染的核心API,理解其底层运行机制对图形开发者至关重要。在桌面端搭建OpenGL ES环境,本质是通过EGL桥接层将ES调用转译为桌面OpenGL指令,借助Mesa开源图形库实现上下文创建、表面管理与渲染管线调度。这一方案的技术价值在于:无需依赖移动设备即可完成着色器编译、纹理上传与离屏渲染验证,大幅缩短调试反馈周期。典型应用场景包括嵌入式图形开发、移动端渲染效果预研、CI自动化测试等。Ubuntu 18.04凭借其工业级稳定性与Mesa 18.0对OpenGL ES 阅读详情

[版权申明:本文系作者原创,转载请注明出处]
文章出处:http://blog.youkuaiyun.com/sdksdk0/article/details/52106690
作者:朱培 ID:sdksdk0 邮箱: zhupei@tianfang1314.cn


一、简介

Webservice:跨语言跨平台的远程调用技术。Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。
JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。
webService三要素:soap、wsdl、uddi

JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For XML-Remote Procedure Call).
JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输等.
JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范.

二、应用场景

在做企业整体信息化时,企业中一般都或多或少的存在一些既存系统,这些各种各样的系统不可能全部推翻,重新规划和开发,因为很多供应商在某一领域也做的很专业,博众家之长并进行集成应该是一个比较现实和可取的做法。各个系统之间通过WebService进行集成,不仅缩短了开发周期,降低了风险,还减少了代码复杂度,并能够增强应用程序的可维护性,因为webservice支持跨平台且遵循标准协议(soap)。

将一个软件的功能以webservice方式暴露出来,达到软件重用。例如上边分析的天气预报,将天气查询功能以webservice接口方式暴露出来非常容易集成在其它系统中;再比如一个第三方物流系统将快递查询、快递登记暴露出来,从而集成在电子商务系统中。

三、soap协议

SOAP 是一种网络通信协议
SOAP即Simple Object Access Protocol简易对象访问协议
SOAP 用于跨平台应用程序之间的通信
SOAP 被设计用来通过因特网(http)进行通信
SOAP = HTTP+XML,其实就是通过HTTP发xml数据
SOAP 很简单并可扩展支持面向对象
SOAP 允许您跨越防火墙

Socket是所有通信的基础也是语言个无关平台无关。
Socket使用的是tcp协议,传输效率高。适合传递大数据高并发场景,高并发的情况需要实现多线程并且使用到线程池,编码复杂。Sockt的高并发框架mina。
Socket只是流的传输,传输的格式需要程序员自己定义。

Webservice使用的是soap协议,soap协议基于http协议的应用层协议,本质就是http+xml。Soap协议是w3c标准,传输效率低。使用传输数据不是太大的场合,也是支持高并发的,受限于web容器。支持soap协议和wsdl两者都是国际通用标准,不需要自定义数据格式,只需要面向对象开发。

四、WSDL

Webservice的使用说明书。描述了webservice的服务地址以及webservice服务接口、参数、返回值。
阅读方法:从下往上读。
这里写图片描述

  1. 先找service节点:每个wsdl中,有且只有一个service节点。也叫服务视图节点。service中有port节点服务端端口。
  2. 根据port节点的binding属性找binding节点。根据binding节点的type属性找portType节点。
  3. portType节点就是我们定义的SEI服务的接口类型。Prottype中的operation 节点就是方法名称。
  4. operation 节点的input就是参数的定义,output就是返回值的定义。
  5. Input有个属性叫做message,message属性对应message节点。其中有一个element,对应element节点。
  6. Element节点定义中xsd中。定义了数据的类型。参数和返回值都在其中定义。

五、天气查询系统(基础)

到这里,对于webservice的基本概念都已经了解了,那么就开始我们愉快的编码步骤吧!这个的话我们需要新建两个java工程,一个做服务端,一个作为客户端。源码可以通过文末的链接下载。

5.1 服务端

1、编写一个SEI,也就是一个接口

 public interface WeatherInterface {

        String queryWeather(String cityName);
    }
  • 1
  • 2
  • 3
  • 4

2、编写一个SEI实现类,需要实现SEI接口,而且还需要在这个实现类上面添加一个@Webservice注解

    @Webservice
    public class WeatherInterfaceImpl implements WeatherInterface {

        public String queryWeather(String cityName) {
            System.out.println("接收到客户端发送的城市名称:"+cityName);  
            String result="晴,高温预警";
            return result;
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这一步,如果你因为webservice的添加注解系统报错的话,可以先按照报错提示的先转变为jase-1.5,然后自己再去build path中重新变回你原来许需要的java1.7或者1.8.

3、发布服务。使用Endpoint的静态方法publish。

    public class WeatherServer {


        public static void main(String[] args) {
            //发布服务
            Endpoint.publish("http://127.0.0.1:11111/weather", new WeatherInterfaceImpl());
        }

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

访问地址:http://127.0.0.1:11111/weather
这里写图片描述

http://127.0.0.1:11111/weather?wsdl中看到portType。
这里写图片描述

看到效果则说明启动成功了。

5.2 客户端

对于客户端,我们可利用只用java中的wsimport来自动生成客户端代码。

使用Wsimport生成客户端调用代码,
在jdk的安装目录的bin目录中,有一个wsimport命令。

可以根据wsdl文档生成客户端调用代码。

新建一个java工程WebServiceClient,然后到这个工程的src目录下面,在src目录下通过cmd运行以下命令:(注意空格)

wsimport -s . http://127.0.0.1:11111/weather?wsdl

这里写图片描述
生成好之后我们就可以直接调用了:

1、创建一个服务视图对象
2、从服务试图获得porttype(SEI)对象
3、调用服务端方法
4、打印结果

    public class WeatherClient {


    public static void main(String[] args) {
        WeatherInterfaceImplService  service=new WeatherInterfaceImplService();
        WeatherInterfaceImpl portType=service.getWeatherInterfaceImplPort();
        String result=portType.queryWeather("衡阳");
        System.out.println(result);

    }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这里写图片描述

六、天气查询(公网)

刚才使用的方法是我们自己定义了,但是往往生活中,我们需要时时更新的天气信息,所以这个时候我们就可以调用公网来处理了,和前面的一样,我们也需要服务端和客户端。

6.1 服务端

服务端使用第三方的,导入其已经生成好的多个类,cn.com.webxml.这个可以在我提供的源码中直接下载。
这里写图片描述

6.2 客户端

public static void main(String[] args) {
        //创建服务视图
        //WeatherWebService  service=new WeatherWebService();

        URL url = null;
        try {
            url = new URL("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        QName qName=new QName("http://WebXml.com.cn/", "WeatherWebService");

        Service service=Service.create(url,qName);
        WeatherWebServiceSoap  portType=service.getPort(WeatherWebServiceSoap.class);
                //service.getWeatherWebServiceSoap();

        ArrayOfString arrayOfString=portType.getWeatherbyCityName("衡阳");
        for (String string : arrayOfString.getString()) {
            System.out.println(string);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

这里写图片描述

七、区域查询系统

创建区域查询服务系统,对外发布WebService服务,供客户端调用,根据parentid查询区域信息。客户端向服务端传递xml格式数据,服务端向客户端响应xml格式数据。

传递xml数据的原因:

  • 1、跨语言时可能会花费很多时间去调试,如果直接传递xml会节省调试的时间。参数和返回值都是字符串类型,非常简单。
  • 2、如果参数发生变化后,可以不要修改接口,不能重新生成客户端代码。
  • 3、xml格式的数据是跨平台的。

这里写图片描述

实现步骤

- 创建一个java工程。
- 导入mysql数据库驱动及其相关的jar包。
- 创建一个SEI。
- 创建一个SEI实现类,调用dao查询区域列表。
- 发布服务,使用Endpoint的publish方法发布服务。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

客户端:

  • 生成客户端调用代码
  • 创建服务视图
  • 从服务视图获得portType
  • 调用服务端方法

7.1 服务端

1、新建一个区域信息接口,AreaModel .java
private String areaid;
private String areaname;
private String parentid;
private String arealevel;
实现其get\set方法

2、新建一个AreaDao.java,用于访问mysql数据库中的区域信息,这个数据库的sql脚本已放到源码中,读者可自行下载。就是一个连接数据库的功能。

public List<AreaModel> queryArea(String parentid, int start, int end) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet resultSet = null;
        List<AreaModel> areaList = new ArrayList<>();
        try {
            //加载数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            //获得connection
            connection = DriverManager.getConnection("jdbc:mysql:///day15", "zp", "a");
            String sql="select *from area where parentid=? limit ?,? ";
            pstmt=connection.prepareStatement(sql);

            pstmt.setString(1,parentid);
            pstmt.setInt(2, start-1);
            pstmt.setInt(3, end-start-1);

            resultSet=pstmt.executeQuery();



            while(resultSet.next()){

                AreaModel model=new AreaModel();
                model.setAreaid(resultSet.getString("areaid"));
                model.setAreaname(resultSet.getString("areaname"));
                model.setArealevel(resultSet.getString("arealevel"));
                model.setParentid(resultSet.getString("parentid"));
                //添加到区域列表
                areaList.add(model);

            }

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try {
                resultSet.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                pstmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return areaList;

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

3、写一个区域查询SEI

public interface AreaInterface {

    String queryArea(String area);

}
  • 1
  • 2
  • 3
  • 4
  • 5

4、实现其Sei的dao方法。

@WebService
public class AreaInterfaceImpl implements AreaInterface {

    @Override
    public String queryArea(String area) {

        //解析xml查询条件
        AreaModel model = null;
        try {
            model = parseXml(area);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        AreaDao dao=new AreaDao();
        List<AreaModel> list=dao.queryArea(model.getParentid(), model.getStart(), model.getEnd());
        String result = null;
        try {
            result = list2xml(list);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



        return result;
    }

    private AreaModel parseXml(String xml) throws DocumentException{

        Document document=DocumentHelper.parseText(xml);
        String parentid=document.selectSingleNode("/queryarea/parentid").getText();
        String start=document.selectSingleNode("/queryarea/start").getText();
        String end=document.selectSingleNode("/queryarea/end").getText();

        AreaModel model=new AreaModel();
        model.setParentid(parentid);
        model.setStart(Integer.parseInt(start));
        model.setEnd(Integer.parseInt(end));
        return model;

    }
    private String list2xml(List<AreaModel> list) throws Exception {
        Document document = DocumentHelper.createDocument();
        //添加以根节点
        Element root = document.addElement("areas");

        for (AreaModel areaModel : list) {
            Element area = root.addElement("area");
            area.addElement("areaid").setText(areaModel.getAreaid());
            area.addElement("areaname").setText(areaModel.getAreaname());
            area.addElement("arealevel").setText(areaModel.getArealevel());
            area.addElement("parentid").setText(areaModel.getParentid());
        }

        return document.asXML();
    }


}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

5、发布服务

public class AreaServer {

    public static void main(String[] args) {
        Endpoint.publish("http://127.0.0.1:11111/area", new AreaInterfaceImpl());
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

通过浏览器访问看到这个界面就说明运行成功了。
这里写图片描述

7.2 客户端

和之前同样的方法,使用wsimport来自动生成客户端代码。
在java工程的src目录中运行cmd。
wsimport -s . http://127.0.0.1:11111/area?wsdl

生成好之后如下所示:
这里写图片描述

客户端进行调用

public class AreaClient {

    public static void main(String[] args) {
        AreaInterfaceImplService service=new AreaInterfaceImplService();

        AreaInterfaceImpl portType=service.getAreaInterfaceImplPort();
        String result=portType.queryArea(getQueryXml("1.1.",1,10));
        System.out.println(result);
    }

    private static String getQueryXml(String parentid,int start,int end){
        String  xml="<?xml version=\"1.1\" encoding=\"utf-8\"?>\n" +
                "<queryarea>\n"+
                "<parentid>"+parentid+"</parentid>\n"+
                "<start>"+start+"</start>\n"+
                "<end>"+end+"</end>\n"+
                "</queryarea>";
        return  xml;        
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

输出结果:
这里写图片描述

总结:本篇文章关于webservice的内容都是非常非常基础的,里面涉及到的一些协议或者使用方法估计有些人是不知道的,我们一方面需要扩展自己的视野,了解更多的新东西,内心不要对一些自己不是很常见的东西去抵触,有的朋友会说“嗯,你讲的这些东西都太基础了,我们在实际项目中要如何应用”,有的直接是调用第三方的url和参考文档就搞定了,其实是比较方便的,那么我们在使用别人的东西的时候有没有考虑过其底层的实现原理,深入到其骨髓才是真的掌握了,不然我们依然是那种只会复制黏贴、只会盲目的调用各种第三方API来的人了。共勉!下次会带来更加实用的cxf实现jax-ws。欢迎关注!

源码下载:
https://github.com/sdksdk0/WebWeather-BaseDemo-
https://github.com/sdksdk0/AreaWebService

webService入门到精通 webservice 阅读详情

相关推荐

WebService入门教程(服务端发布WebService)

本文章主要介绍利用jws和cxf框架发布webservice到服务端以及cxf框架如何与springboot整合,动态发布webservice。

qq_45150309的博客 1807

MVC,WebAPi,WebService区别

被别人提问记录大家好,我是你们的好朋友程序猿:铭文一.MVC和webapi的区别。一.webapi和webservice的区别。 大家好,我是你们的好朋友程序猿:铭文 先简单的说下:昨天一位朋友和我唠嗑突然问我一个问题:mvc和webapi的区别是什么。当时我以为问的是webapi和 webservice的区别。mvc和webapi的区别,当时大闹一片空白一脸懵逼。所以我把这个好好整理出来希望可以帮助一些 朋友,理论性的东西在框架搭建的时候也是可以提供很多帮助的,我最近三年多是实现,很多基础的都忘记了,大家

weixin_44957831的博客 2436

深入理解WebService入门教程

本文还有配套的精品资源,点击获取 简介:WebService是一种使用WSDL定义、XML数据传输和SOAP通信协议的平台独立交互方式。本教程向初学者介绍WebService的基本组件和创建使用步骤,包括接口定义、服务实现、部署、消费以及测试,旨在加深对WSDL、SOAP等核心技术的理解,并熟悉JAX-WS开发框架和相关工具。 1. WebService入门基础介...

weixin_42160645的博客 2233

WebService

一.什么是Webservice Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序,其实webservice就是一种远程调用技术。 WebService的创建 服务接口 public interface Weath...

strong_yu的博客 1020

视图控制对象的区别及使用

视图控制对象的区别及使用的小小的Demo,可以让大家更容易理解视图控制对象的区别及使用

避坑指南:STM32CubeMX配置SDIO4bit模式时为什么卡在HAL_SD_ConfigWideBusOperation?

本文深入分析了使用STM32CubeMX配置SDIO 4位模式时,程序在HAL_SD_ConfigWideBusOperation函数处卡死的常见问题。文章从硬件连接、CubeMX配置、初始化序列及HAL库底层实现等多个维度剖析根源,并提供了从初始化流程优化到增强代码鲁棒性等实战解决方案,帮助开发者彻底解决这一棘手难题。

pca5navigator的博客 825

数据库视图

什么是视图视图(view):从一个或几个基本表中根据用户需要而做成一个虚表。1、视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据2、视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户视图与查询的区别视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别:它们的区别在于:1、存储上的区别:视图存储为数据库设计的一部分,而查询则不是。2、更新限制的要求

爱橙子的OK绷的专栏 1569

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 446

SQL使用视图的优缺点

INNER JOIN / left Join 联接多个表 关于SQL的执行计划/查看SQL语句的具体执行过程,工作原理 SQL使用视图的优缺点 2010-06-04 10:56:43|分类: SQL |标签: |字号大中小订阅 在做数据库开发中使用视图的优点有: 1.可以访问表中列的子集。在表中有些列是比较...

weixin_30407613的博客 665

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1583

Mac Pro M2芯片成功安装麒麟银河高级服务器虚拟机

本人用的是1、Macbook m2pro芯片 16G+5123、安装homebrew、wegt、qemu。

vagatable_XX的博客 3304

webservice的基础知识以及入门案例1

一 webService 1.1 webservcie webservice是一种跨操作系统和跨语言的数据调用、数据交换的一种服务技术。用于网络通信,多台机器之间的数据交互。 最大优点:webservice最大的好处是客户端与服务端语言的兼容性及交互时候可以传递对象。 1.2 webservice与socket的区别 1. socket是在网络中的数据传输层,采用的是TCP/UDP协议,webservice是属于应用层,采用的是http协议 2. socket建立是长连接,webservice.

健康平安的活着的专栏 2388

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2962

谈谈WebService开发-基础篇

最近经常有些网上的朋友问起WebService的开发,这里就我个人的理解做个简明介绍与总结。该篇主要介绍WebService涉及的一些基础:WebService的必要性;Schema规范与Http协议;重要述语;开发WebService的步骤; 后续还将就Webservice专题深入介绍相关知识,希望能让一个对webservice毫无了解的新手,能轻松的一步一步深入。

Rick Dong 9354

Wi-Fi Sigma测试系统

Wi-Fi Sigma测试系统是Wi-Fi联盟(WFA)提出的一套全自动的WiFi认证测试系统,几乎涵盖的所有Wi-Fi的功能及性能(throughput)的自动化测试。该系统正逐步取代以前的WiFi认证测试系统。

Ke8323的博客 1万+

calibre:将calibre 的layer number 转换为实际的laymer 名称(7)

可以使用与版图数据库配套的(Standard Verification Rule Format,标准验证规则格式),在 Calibre DESIGNrev 中加载图层名称。

u013620135的博客 984

WebService入门概述及案例分析

WebService入门介绍及案例分析 一、WebService入门概述: 1、什么是WebService? WebService,就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而远程调用。 2、  WebService能做什么? 我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看

*~~~~~向日葵、的眼里只有【太阳】 6173

《嵌入式最全面试题-Offer直通车》目录

嵌入式领域蓬勃发展,嵌入式工程师成为众多科技企业争抢的热门人才。如果你渴望在嵌入式面试中脱颖而出,成功斩获心仪的 offer,那么《嵌入式最全面试题 - Offer直通车》将是你的绝佳选择。本专栏是优快云是热门专栏,100多篇文章,总字数过百万。每月新增订阅用户过百,现在是优惠价9.9元,后面要逐渐恢复原价,早订阅早受益。本专栏精心整理了众多超万字的精华内容,总计达数十万字的嵌入式面试题总结。涵盖从嵌入式基础知识到各大厂面试真题,从驱动开发到操作系统,从硬件到软件等各个方面。

大模型大数据攻城狮的专栏 8404

WebService简单案例实例

本周工作日即将结束,下周项目经理安排了一项任务可能需要使用到webservice,但本人之前尚未使用过,网上查了一些案例看了看 在此小记一篇留作日后回首也希望可以帮助到查看者朋友1、什么是WebService?WebService是一种远程调用技术,也叫XML Web Service WebService,是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独...

cm777的博客 3万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

postman测试webservice,零基础入门到精通,收藏这篇就够了

一、使用Postman测试WebService接口Postman:适用RESTful接口(HTTP/HTTPS协议)的功能测试1、打开Postman界面如下:设置请求方式为”POST”设置Content-Type为text/xml;设置body请求调用的方法excute及对应的参数param注意引用变量{{pw}}

leah126的博客 1139

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WebService基础入门

WebService基础入门 参考博客: ​ https://blog.youkuaiyun.com/c99463904/article/details/76018436, ​ https://blog.youkuaiyun.com/pengjwhx/article/details/83383959 基本概念 在WebService规范实施的应用之间,可以跨平台跨应用的相互交换数据 WebService使用Http协议在客户端和服务端之间传输数,数据在服务端和客户端传输的时候是以XML的格式封装,增加了Http

白马非码 251

WebService简介及入门

文章目录1. 什么是WebService2. WebService的应用场合2.1跨越防火墙2.2 应用程序集成2.3 软件复用3.WebService的三个规范3.1 JAX-WS规范3.2 JAX-RS规范4. Apache 的CXF4.1. 什么是CXF?4.2. 下载开发包5. 基于JAX-WS规范入门5.1 JAX-WS的三要素5.2 SOAP5.3 WSDLwsdl 的阅读方法,是从下...

weixin_44305208的博客 988
上一篇: Unable to compile class for JSP 问题解决方法
下一篇: Oracle、Mysql和SQL Server数据库连接的URL写法
Yuwen_forJava
博客等级 码龄9年 28粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值