JAX-RS和JAX-WS有什么区别?
在阅读了一些关于JAX-RS和JAX-WS的文章之后,我有几个问题想要确认?
- JAX-RS可以像JAX-WS一样执行asynchronous请求吗?
- JAX-RS是否可以访问未在Java平台上运行的Web服务,反之亦然?
- “REST对于PDA和手机等有限的设备特别有用”是什么意思?
- “JAX-RS不需要XML消息或WSDL服务-API定义是什么意思?
JAX-RS可以像JAX-WS一样执行asynchronous请求吗?
1)我不知道JAX-RS API是否包含asynchronous请求的特定机制,但是这个答案仍然可以根据您使用的客户端实现进行更改。
JAX-RS是否可以访问未在Java平台上运行的Web服务,反之亦然?
2)我想不出有什么理由不能这样做。
“REST对于PDA和手机等有限的设备特别有用”是什么意思?
3)基于REST的体系结构通常会使用像JSON这样的轻量级数据格式来回发送数据。 这与使用XML的JAX-WS相反。 我本身并没有看到XML本身比JSON要重要得多(有些人可能会争辩),但是使用JAX-WS,使用了多lessXML,最终使JSON成为REST更为轻松的select。
“JAX-RS不需要XML消息或WSDL服务-API定义是什么意思?
4)如3所述,REST体系结构通常使用JSON来发送和接收数据。 JAX-WS使用XML。 并不是说JSON本身比XML要小得多。 大多数情况下,JAX-WS规范在通信方面包含很多开销。
关于WSDL和API定义,REST将更频繁地使用URI结构和HTTP命令来定义API,而不是像JAX-WS中所做的那样定义消息types。 这意味着您不需要发布WSDL文档,以便服务的其他用户可以知道如何与您的服务对话。 使用REST,您仍然需要向其他用户提供一些文档,以了解如何组织REST服务以及需要发送哪些数据和HTTP命令。
另外重要的一点
JAX-WS表示SOAP
JAX-RS代表REST
如何selectJAX-RS和JAX-WS Web服务实现?
JAX-WS – 是基于XML的Web服务的Java API–一种用SOAP标记(简单对象访问协议)开发Web服务的标准方法。
调用Web服务是通过远程过程调用来执行的。 用于客户端和Web Service之间的信息交换是使用SOAP协议。 通过基于XML的SOAP消息执行客户端和服务器之间的消息交换。
JAX-WS Web服务的客户端需要一个WSDL文件来生成客户端可以用来调用Web服务的可执行代码。
JAX-RS – 用于REST风格的Web服务的Java API。 REST风格的Web服务被表示为资源,可以通过统一资源标识符( URI )来标识。 在这种情况下,远程过程调用表示一个HTTP请求,必要的数据作为查询的parameter passing。 Web服务RESTful – 更加灵活,可以使用几种不同的MIMEtypes。 通常用于XML数据交换或JSON (JavaScript Object Notation)数据交换…
我一直在使用Apachi Axis1.1和Axis2.0和JAX-WS,但是我build议你必须使用JAX-WS,因为它允许你以任何格式生成wsdl,我在Apache Axis2中使用GetInquiry()允许我以大写字母开始操作名称,所以我觉得它不好,所以我build议你必须使用JAX-WS