加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

休息 – jaxrs-api vs. jsr311-api vs. javax.ws.rs-api vs. jer

发布时间:2020-12-14 23:48:19 所属栏目:Java 来源:网络整理
导读:对于上述每一个,我已经有点糊涂了,还是很困惑. 这是我对此的理解: jaxrs-api:只包含api.没有实现.但是它与JSR311有什么不同 jsr311-api:JSR311它是一个规范请求.这意味着它应该是一个文件.为什么这是罐子? javax.ws.rs-api:是否是一个实现? jersey-cor
对于上述每一个,我已经有点糊涂了,还是很困惑.

这是我对此的理解:

> jaxrs-api:只包含api.没有实现.但是它与JSR311有什么不同
> jsr311-api:JSR311它是一个规范请求.这意味着它应该是一个文件.为什么这是罐子?
> javax.ws.rs-api:是否是一个实现?
jersey-core(/泽西客户端):是JSR311的一个实现.

我下载了每个jar,并尝试反编译,看看它里面是什么,但是我只能找到所有的接口,而不是实现.

我在maven shade插件生成的重复警告的上下文中面临这些问题,需要对上述内容进行正确的理解,以确定要排除哪些错误以及为什么.

解决方法

我会先来看看这个问题

“JSR311 it is a specification request. Which means it is supposed to be a document. Why then is it a jar?”

除了最后一个(运动衫),所有这些罐子都是“规格”的罐子. JAX-RS(以及许多其他Java)规范定义了实现者应实现指定行为的合同(或接口).

所以基本上规范中指定的所有类都应该在jar中作为合同.罐头的最终用户可以使用它们进行合同.但是没有实现.您需要实际执行应用程序,尽管规范API jar足以编译完整的符合JAX-RS的应用程序.

例如,如果我们在类路径中有一个规范API jar,我们可以创建一个完整的JAX-RS应用程序并编译它,但为了运行它,如果我们没有实际的实现,我们需要部署到具有该规范版本的实际实现的服务器,例如JBoss或Glassfish

> jaxrs-api – 这是RESTeasy’s包装的规格.它不是官方规格罐,而是遵守规格合同. RESTeasy在整个规范行中使用这个jar,即1.x – current.尽管该jar确实改变了内部部件来遵守不同的JAX-RS版本.
> jsr311-api – 这是JAX-RS 1.x行的官方规范jar.
> javax.ws.rs-api – 这是JAX-RS 2.x行的官方规范jar.
>泽西核心 – 这是规范的部分实现.实施的其余部分包含在其他泽西罐内.请注意,在Jersey的早期版本中,他们实际上将JAX-RS规范API打包到此jar中.直到后来才开始使用官方规格的罐子.

其他资源

> Java API for RESTful Services (JAX-RS)阅读不同规格版本的详细信息.
> Complete implementation for RESTeasy distribution.如果JAX-RS 2.x实现的RESTeasy 3.x行,以及JAX-RS 1.x行的RESTeast 2.x / 1.x id
> Complete distribution of Jersey implementation.您可以在页面顶部的“泽西JAX-RS 2.0 RI软件包”链接中找到JAX-RS 2.x实现.还有底部链接到泽西1.x线分布,它遵守JAX-RS 1.x规范.

另请注意,虽然不同的实现遵守规范,但每个实现都有自己的一组额外功能.要了解更多信息,您应该了解不同实现的文档.三个最流行的实现是Jersey,RESTeasy和CXF

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读