1. 什么是web service

Web Service是一种网络程序间的通信方式,它允许开发者用API方式暴露自己的业务逻辑功能,这样,其他开发者可以使用它

2. Web Service的特性

互操作性、可重用性、松耦合、可扩展

3. Web Service不同的类型

  SOAP和RESTful web service

4. SOAP 是什么?

SOAP是简单对象访问协议,它是一种用XML格式请求和响应的交换信息的协议,于HTTP等协议之上。

5. SOAP的三大组件

简单对象访问协议 - SOAP

Web服务描述语言 - WSDL

统一描述、发现和集成 - UDDI

6. 什么是WSDL

它是一个XML格式的文件,描述了实现Web服务的技术细节,URL、端口、方法名和参数以及数据类型,通过WSDL你可以了解到以下的细节:

  • Port / Endpoint – URL of the web service
  • Input message format
  • Output message format
  • Security protocol that needs to be followed
  • Which protocol the web service uses

7. 什么是UDDI

它是一个目录服务,Web服务提供商可以使用它来注册他们的服务,使得他们的服务可以被发现。

8. 什么是JAX-WS

它是基于XML的Web Service的Java标准API,用来创建SOAP类型的Web服务

9. JAX-WS重要注解

  • @WebService
  • @WebMethod
  • @SOAPBinding

10. 针对SOAP类型而言, endpoint是指什么?

是一个URL,其他应用可以访问它。

11. 针对SOAP,如何访问到WSDL

将 ?wsdl 添加到Web 服务的endpoint url后即可

http://localhost:8080/WS/HelloWorld?wsdl

12. wsimport 是什么?

是一个工具,可以将WSDL生成java类,要求JDK6以上

13. sun-jaxws.xml文件是什么

这个文件提供了JAX-WS Web服务的endpoints详细内容,这些JAX-WS Web服务部署在Tomcat中,此文件一般在WEB-INF/ 目录里面,内容类似如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
  3. <endpoint
  4. name="HelloWorldWS"
  5. implementation="org.arpit.javapostsforlearning.webservice.HelloWorldImpl"
  6. url-pattern="/HelloWorldWS"/>
  7. </endpoints>

14. 什么是Restful Web服务

在Web服务领域,REpresentational State Transfer (REST) 是一个无状态的客户端-服务器架构,在这种风格上,Web服务被认为是一种资源,且可以通过URI唯一标记。Web服务客户端使用URI来访问它。

15. Restful Web服务可以用哪些HTTP方法

GET, POST, PUT ,DELETE, HEAD and OPTIONS

16. 什么是JAX-RS

RESTful Web Services 的JAVA标准API,用来开发REST风格的服务,它是JAVA EE6的一部分。这使得开发者很容易开发REST风格的Web应用

17. 用来创建REST Web服务的重要的注解

以下列出比较重要的,详细查看官方文档:

@Path : 放到类或者方法前,映射URI到类或者方法
@GET,@POST,@PUT,@DELETE  : 限制URI访问的HTTP方法
@Produces(MediaType.TEXT_XML [, more-types ]): 定义该方法返回的MIME类型
@PathParam: 用来从URL中注入值到方法参数中
@Consumes(MediaType.TEXT_XML) : 方法使用的MIME类型

18. 测试工具

对于SOAP:

  soapui

对于rest:

  浏览器扩展即可,例如谷歌浏览器的DHC客户端

19. 如何选择?

更快的开发速度? 选择REST

不知道访问的客户端? 选择REST

支持更多的格式? 选择REST

20. SOAP和REST 之间的区别

Read more at http://www.java2blog.com/2013/04/restful-web-service-tutorial.html#JmjvwTWX5wuBUAAo.99

【译文】Web Service 众所周知的问题的更多相关文章

  1. Windows Phone开发(47):轻松调用Web Service

    原文:Windows Phone开发(47):轻松调用Web Service 众所周知(除了没用过VS的),在VS里面调用Web Service是一件很愉快的事情,不解释,相信很多朋友在以前的项目中肯 ...

  2. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  3. 从WEB SERVICE 上返回大数据量的DATASET

    前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然,除了显示在页面上以外,有可能还要用这些数据在客户端进行其它操作.查遍了网站的文章,问了一 ...

  4. 使用Java创建RESTful Web Service

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  5. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service

    一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...

  6. ref:Web Service 渗透测试从入门到精通

    ref:https://www.anquanke.com/post/id/85910 Web Service 渗透测试从入门到精通 发布时间:2017-04-18 14:26:54 译文声明:本文是翻 ...

  7. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service (转)

    一.综述 本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的通讯协议 ...

  8. .NET基础拾遗(7)Web Service的开发与应用基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...

  9. Web Service概念梳理

    计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些 ...

随机推荐

  1. c#基础学习(0630)之面向对象总习

    面向对象总习 1.封装.继承.多态 ****字段:存储数据,访问修饰符应该设置为private私有的 ****属性:保护字段,对字段的取值和赋值的限定 ****new关键字: 1.在堆中开辟空间(引用 ...

  2. sql 数据库数据 批量判断修改

    A表B表相关联  更新B表中的VisitWeek字段值 CCD_PartnerVisit 此为B表 Dell_FiscalWeek  此为A表 UPDATE CCD_PartnerVisit SET ...

  3. [转]浅谈 JavaScript的原型对象与原型链

    看到这篇文章写的很好,转过来以便今后阅读. 原文地址:http://www.cnblogs.com/shuiyi/p/5305435.html 对于新人来说,JavaScript的原型是一个很让人头疼 ...

  4. python可视化基础

    常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装.入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节.其实学习一门新知 ...

  5. Struts框架的执行流程或原理

    Struts2的执行流程如下: 1.浏览器发送请求,经过一系列的过滤器,到达StrutsPreapareAndExecteFilter 2.StrutsPrepareAndExectueFilter通 ...

  6. windows多线程窗口程序设计

    掌握windows基于消息驱动的窗口应用程序设计的基本方法,掌握窗口程序资源的概念与设计,掌握常用的消息的程序处理方法,掌握文字图形输出相关函数编程.掌握设计的基本方法(选项),掌握时钟消息设计动画程 ...

  7. 最全Vue开发环境搭建

    前言 一直想去学Vue,不过一直找不到一个契机.然公司手机端用到了跨平台开发apicloud,里边涉及到Vue组件化开发,例如header和footer的封装,以及apicloud自定义的frame等 ...

  8. Jquery使用Id获取焦点和失去焦点

    Jquery使用Id获取焦点和失去焦点有2种方法 先用第一种(val()=="空"): <div> <input type="text" id ...

  9. cf623A. Graph and String(二分图 构造)

    题意 题目链接 Sol 可以这样考虑,在原图中没有边相连的点的值肯定是a / c 那么直接二分图染色即可 #include<bits/stdc++.h> #define LL long l ...

  10. 实用的Javascript获取网页屏幕可见区域高度

    本文转载原地址:这里 document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 docu ...