2021-05-02

聊聊webservice

  webservice这个东西已经是一个比较旧的技术了,可能很多人都没听说过,乍一听是不是跟websocket有关呀,哈哈哈,其实压根就是两个东西;

  我对webservice的理解是:远程服务器有一个微服务,暴露了一个接口和一个方法,你可以直接调用这个远程方法,如同本地的方法一样;

  提前须知:常用开发webservice的方式一般两种,一种是jdk自带的方式,一种是使用apache的CXF框架,我们这里使用原生的jdk自带的方式

1.为什么要有webservice

  现在编程语言这么多,有没有办法屏蔽掉编程语言的差异性,使得不同开发语言开发的系统能够协同工作。例如可不可以用js开发的系统能够和java开发的系统进行通信?当然可以呀╮(╯_╰)╭,有经验的人已经知道了,你妹,这不就是前后端分离么?前端可以使用vue开发,后端使用java开发,基于http请求以json的格式进行数据的交换,就可以使得两种不同需要开发的应用达到通信的目的;

  webservice就是差不多的这么一个技术,分为客户端和服务端,服务端随意用什么语言开发,只要最后发布成webservice服务就行!客户端我们这里使用java,通过http+

  道理是不是很容易,其实这里我们需要关注的就是几个点:

    (1).怎么知道远程的服务暴露的地址和方法呢?

    答:发布webservice的服务端会提供一个url(例如天气预报的webservice的url文档    (2)客户端怎么是通过什么协议调用呢?

    答:首先根据提供的url生成的java文件,然后一般底层通过http+

 

2. webservice服务端发布服务

  其实一般情况我们是不会开发webservice服务端的,你想想你有啥数据需要给别的公司或者组织使用的?不过这里我们还是使用java语言(其他语言也行)来自己也发布一下webservice服务;

  接口:

 

 

  到这里我们的webservice服务端已经弄好了,然后我们浏览器中访 >注意,文档从下往上看);

  随便看看这个文档应该能看到我们发布的服务的基本接口信息了,如果想详细的了解这种wsdl文档结构的,可以自行去百度了解

 

3. webservice客户端调用

  实际的场景如果我们要去调用远程的webservice服务,别人会把这个wsdl文档的url发给我们的;

  在jdk中安装目录下的bin目录下有个小工具wsimport,使用命令:wsimport -s ./  -s ./ -p com.skd.client  这里的-s参数表示生成java文件和class文件

 

 

  开始调用,其实就跟使用本地的类一样,很容易的吧!

 

 

4.service服务端优化

  前面发布webservice服务是通过在main方法中,但是在项目中这这种方式肯定不行!

  1.javaweb应用发布webservice服务,我们将发布接口的方法放入到一个servlet中的init方法,然后在web.

  2. javaweb应用发布webservice服务,使用监听器的方式,例如像下面这样(这个代码随便找的)

 

   3.spring应用发布webservice服务,将提供服务的类放到spring容器中,也就是加个注解@Service,然后在这个bean的构造器中发布服务,这样在spring容器启动的时候会实例化这个bean,调用构造器达到发布webservice服务的目的

  4. springboot发布webservice服务方式就更多了,自行可以去了解,总之怎么方便怎么来,看每个人的爱好吧!

 

5. webservice的优缺点

  说了这么多,我们知道了其大概的用法,优点很明显,实现了应用的解耦,不需要关注编程语言的差异;

  缺点也比较明显,由于是http+

     有兴趣的可以看看开源的常用的webservice服务url:点击这里









原文转载:http://www.shaoqun.com/a/719751.html

跨境电商:https://www.ikjzd.com/

亿恩:https://www.ikjzd.com/w/1461

特许金融分析师:https://www.ikjzd.com/w/1396


webservice这个东西已经是一个比较旧的技术了,可能很多人都没听说过,乍一听是不是跟websocket有关呀,哈哈哈,其实压根就是两个东西;  我对webservice的理解是:远程服务器有一个微服务,暴露了一个接口和一个方法,你可以直接调用这个远程方法,如同本地的方法一样;  提前须知:常用开发webservice的方式一般两种,一种是jdk自带的方式,一种是使用apache的CXF框架,
塔图:https://www.ikjzd.com/w/2274
易趣:https://www.ikjzd.com/w/210
点通:https://www.ikjzd.com/w/1913
免费送药给中国抗击新冠疫情,瑞德西韦背后这家美国药企什么来头?:https://www.ikjzd.com/home/115427
老公富有了之后就只买最贵的:http://lady.shaoqun.com/a/272589.html
口述:我们缠绵相爱46天:http://lady.shaoqun.com/a/273503.html

No comments:

Post a Comment