Gad*_*dam 26 rest jax-rs jersey jsr jsr311
我已经google了很多,仍然感到困惑的是上面的每一个究竟是什么意思.
以下是我对它的理解:
我下载了每个jar并尝试反编译并查看其中的内容,但我只能在所有这些中找到接口而不是实现.
我在maven shade插件生成的重复警告的上下文中面临这些问题,并且需要正确理解上面的内容以找出要排除的内容和原因.
Pau*_*tha 46
我首先要回答这个问题
"JSR311是一个规范请求.这意味着它应该是一个文档.为什么它是一个罐子?"
除了last(jersey-core
)之外,所有这些罐子都是"规格"罐子.JAX-RS(以及许多其他Java)规范定义了实现者应该为其实现指定行为的契约(或接口).
所以基本上规范中指定的所有类都应该作为契约在jar中.罐子的最终用户可以将它们用于合同.但是没有实施.您需要有一个实际的实现来运行应用程序,尽管spec API jar足以编译完整的JAX-RS兼容应用程序.
例如,如果我们在类路径上有一个规范API jar,我们可以创建一个完整的JAX-RS应用程序并对其进行编译,但是为了运行它,如果我们没有实际的实现,我们需要部署到具有该规范版本的实际实现的服务器,例如JBoss或Glassfish
jaxrs-api - 这是RESTeasy对规范的打包.它不是官方规格罐,但它确实遵守规范合同.RESTeasy将此jar用于整个规格线,即1.x - 电流.虽然jar确实改变了内部结构以遵守不同的JAX-RS版本.
jsr311-api - 这是JAX-RS 1.x系列的官方规范jar.
javax.ws.rs-api - 这是JAX-RS 2.x系列的官方规范jar.
jersey-core - 这是规范的部分实现.其余的实施包含在其他泽西岛罐子里面.请注意,在早期版本的Jersey中,他们实际上将JAX-RS规范API打包到此jar中.直到后来泽西才开始使用官方规格的罐子.
jaxrs-ri - 这是完整的Jersey 2.x实现打包到一个jar中."ri"意味着参考实现,这是泽西岛的:JAX-RS参考实现.如果您没有使用像Maven这样的依赖管理器,您可能只想使用这个jar而不必使用Jersey附带的所有单独的jar.
其他资源
另请注意,虽然不同的实现遵循规范,但每个实现都有自己的一组额外功能.要了解更多信息,您应该阅读不同实现的文档.三种最流行的实现是Jersey,RESTeasy和CXF
归档时间: |
|
查看次数: |
11802 次 |
最近记录: |