什么是JAX-RS实现?

时间:2011-02-15 15:42:56

标签: rest jersey jax-rs resteasy

我一直试图弄清楚如何使用JAX-RS很长一段时间。我从最基本的概念开始,然后逐渐理解注释风格的编程,@ Path,@ Get,@ Post等的含义。

据我所知,对于很多地方提到的内容,JAX-RS是一个专注于将Java注释应用于普通Java对象的框架(第27页,Bill Burke,RESTful Java)。

然后我对这一点感到困惑。如果JAX-RS本身是一个定义处理注释的API以实现RESTful Web服务的框架,那么“JAX-RS的实现”的含义是什么,例如“Jersey”和“JBoos Resteasy”。 JAX-RS顶部的另一层?我们为什么需要它们?

有人可以向我提供一些有关它的见解吗?非常感谢!!!

2 个答案:

答案 0 :(得分:26)

JAX-RS是Java规范请求311(JSR-311)中定义的标准,Jersey / RESTEasy是它的实现。

实施意味着规范说“如果你将@GET("/foo")放在方法(bar())上,你可以访问数据X” - 现在在app服务器中,有人需要进入并且实际上读取已部署的代码,使用@GET注释解析字节代码,然后如果用户实际浏览到例如http://localhost/foo让此网络请求到达bar()并将bar()的返回值转换为http答案(例如以XML或JSON格式表示)。

因此,名称为“JAX-RS”的规范仅提供例如“JAX-RS”的语法和语义。 @GET,但是解析请求,调用正确的方法,编组结果值等的工作需要由实现Spec的包来完成。

标准版本2.0的工作已经开始为JRS-339

另见http://en.wikipedia.org/wiki/Jax-rs

答案 1 :(得分:23)

JAX-RS是使用Java的RESTful Web服务的规范。 Java EE中包含一个参考实现,但由于它是一个规范,因此可以编写其他框架来实现规范,包括Jersey,Resteasy等。