JAX-RS和JAX-WS有什么区别?

时间:2013-05-14 09:42:40

标签: web-services rest soap jax-ws jax-rs

在阅读了一些关于JAX-RS和JAX-WS的文章之后,我想提出一些我想要确认的问题?

  1. JAX-RS可以像JAX-WS那样执行异步请求吗?
  2. JAX-RS能否访问未在Java平台上运行的Web服务,反之亦然?
  3. “REST对于限制型设备,如PDA和手机特别有用”是什么意思?
  4. “JAX-RS不需要XML消息或WSDL服务API定义是什么意思?”

5 个答案:

答案 0 :(得分:89)

另一个重点

JAX-WS代表SOAP

JAX-RS代表REST

How to choose between JAX-RS and JAX-WS web services implementation?

答案 1 :(得分:73)

  

JAX-RS可以像JAX-WS一样执行异步请求吗?

1)我不知道JAX-RS API是否包含异步请求的特定机制,但是这个答案仍然可以根据您使用的客户端实现而改变。

  

JAX-RS能否访问未在Java平台上运行的Web服务,反之亦然?

2)我想不出它无法做到的任何理由。

  

“REST对于PDA和移动电话等有限配置的设备特别有用”是什么意思?

3)基于REST的体系结构通常使用轻量级数据格式(如JSON)来回传输数据。这与使用XML的JAX-WS形成对比。我没有看到XML本身比JSON(有些人可能会争辩)重得多,但是对于JAX-WS,使用了多少XML,最终使用JSON的REST变得更轻松。

  

“JAX-RS不需要XML消息或WSDL服务API定义是什么意思?”

4)如3中所述,REST架构通常使用JSON来发送和接收数据。 JAX-WS使用XML。并不是说JSON本身就比XML小得多。主要是JAX-WS规范在其通信方式上包含很多开销。

关于WSDL和API定义,REST将更频繁地使用URI结构和HTTP命令来定义API而不是消息类型,就像在JAX-WS中一样。这意味着您不需要发布WSDL文档,以便服务的其他用户可以知道如何与您的服务进行通信。使用REST,您仍然需要向其他用户提供有关如何组织REST服务以及需要发送哪些数据和HTTP命令的文档。

答案 2 :(得分:42)

JAX-WS - 用于基于XML的Web服务的Java API - 以SOAP表示法(简单对象访问协议)开发Web服务的标准方法。

通过远程过程调用执行Web服务的调用。对于客户端和Web Service之间的信息交换,使用的是SOAP协议。通过基于XML的SOAP消息执行客户端和服务器之间的消息交换。

JAX-WS Web服务的客户端需要一个WSDL文件来生成客户端可用于调用Web服务的可执行代码。

JAX-RS - 用于RESTful Web服务的Java API。 RESTful Web服务表示为资源,可由统一资源标识符(URI)标识。在这种情况下,远程过程调用表示为HTTP - 请求,并且必要的数据作为查询的参数传递。 Web服务RESTful - 更灵活,可以使用几种不同的MIME类型。通常用于XML数据交换或JSON(JavaScript Object Notation)数据交换......

答案 3 :(得分:0)

我一直在研究Apachi Axis1.1和Axis2.0以及JAX-WS,但我建议您必须使用JAX-WS,因为它允许您以任何格式制作wsdl,我在Apache Axis2中将操作作为GetInquiry()它不允许我在大写字母中启动操作名称,所以我发现它不好,所以我建议你必须使用JAX-WS

答案 4 :(得分:0)

  

JAX-RS可以像JAX-WS一样执行异步请求吗?

是的,它肯定可以使用@Async

  

JAX-RS是否可以访问未在Java平台上运行的Web服务,反之亦然?

是的,它可以做

  

“ REST对于PDA和移动电话等有限配置的设备特别有用”是什么意思?

它主要用于公共api,取决于您要使用哪种方法。

  

“ JAX-RS不需要XML消息或WSDL服务–API定义是什么意思?

它有自己的标准WADL(Web应用程序开发语言),它具有http请求,通过它您可以访问它们是由不同的思维方式总共创建的资源,如果是Jax-R,则必须考虑公开资源

相关问题