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. 以中间件,路由,跨进程事件的姿势使用WebSocket

    通过参考koa中间件,socket.io远程事件调用,以一种新的姿势来使用WebSocket. 浏览器端 浏览器端使用WebSocket很简单 // Create WebSocket connecti ...

  2. iOS 交互h5 - WKWebView

    众所周知,UIWebView存在内存问题,也就是当加载一个UIWebView时,内存会一直上升趋势无法得到释放.这样在使用UIWebView进行h5交互开发时会有很大的问题. 因而苹果增加了一个新的类 ...

  3. .NET Core 2.1路线图

    Microsoft的Scott Hunter发布了Microsoft .NET Core 2.1版本的路线图.Hunter宣布Microsoft .NET Core每天约有五十万开发人员的使用量.根据 ...

  4. Linux 调试: systemtap

    安装与配置 在ubuntu下直接用apt-get install之后不能正常使用,提示缺少调试信息或者编译探测代码时有问题. 1. 采用官网上的解决方法 2. 可以自己重新编译一次内核,然后再手工编译 ...

  5. 通过读写文本文件小结“关于python处理中文编码的问题”

    一.引言 无论学习什么程序语言,字符串这种数据类型总是着有非常重要.然而最近在学习python这门语言,想要显示中文,总是出现各种乱码.于是在网上查了很多资料,各说纷纭,我也尝试了许多的方法,有时候可 ...

  6. 【java错误】错误: 编码GBK的不可映射字符

    java源代码 今天在写java是出现一个编码错误,这里先将书上的java源代码贴出来. import java.io.Console; public class ConsoleTest { //用j ...

  7. wkhtmltopdf中文参数

    wkhtmltopdf [OPTIONS]... [More input files] 常规选项 --allow <path> 允许加载从指定的文件夹中的文件或文件(可重复) --book ...

  8. 一个Interface 继承多个Interface 的总结

    我们知道在Java中的继承都是单继承的,就是说一个父类可以被多个子类继承但是一个子类只能有一个父类.但是一个接口可以被不同实现类去实现,这就是我们说的Java中的多态的概念.下面我们再来说一下接口的多 ...

  9. js判断字符串出现的次数

    // 判断substr字符串在str中出现的次数 isIgnore是否忽略大小写! function countSubstr(str, substr, isIgnore) { var count; v ...

  10. Executors相关的类(线程池)

    一.概述 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池.在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在 ...