rest - rest jaxrs api vs jsr311 api vs javax.ws.rs api vs Jersey 内核

  显示原文与译文双语对照的内容
135 2

我已经在相当多的地方了解了这些问题,对于上面每一个都完全。

以下是我对它的理解:

  • jaxrs-api: 只包含 api 。 没有实现。但是它与JSR311有什么不同
  • jsr311-api: JSR311,它是一个规范请求。 这意味着它应该是一个文件。 那为什么是一个 jar?
  • javax.ws.rs-api: 是一个实现?
  • jersey核心 (/jersey 客户端): 是JSR311的一个实现。

我下载了每个 jar 并试图编译并看到它内部的内容,但是我只能找到它们中的接口。

我在 Maven 明暗器生成的重复警告上面面对这些问题,并需要适当的理解以解决哪些问题。

时间: 原作者:

145 0

我首先会找到问题

"JSR311它是一个规范请求。 这意味着它应该是一个文件。 那为什么是 jar"?

除了最后一个( jersey-core ) 所有这些 jars 都是"说明"jars 。 ( 以及其他的Java ) 规范定义了协定( 或者接口),implementators应该实现指定的行为。

因此,规范中指定的所有类都应该在 jar 中作为契约。 jars的最终用户可以将它的用于合同。 但没有实现。 虽然规范 API jar 足以满足你的需要,但是你需要有一个实际实现来运行应用程序。

例如,如果我们在类路径中有一个,jars,可以编译一个,应用程序,但是要运行它。

  • jaxrs-api - 这是规范的resteasy封装的 。 它不是官方规范 jar,但它确实遵循规范契约。 RESTeasy在整个规格行中使用这个 jar,换句话说,1.x - current 。 虽然 jar 确实改变内部,以遵循不同的jax版本。

  • 这是jax的官方规范。

  • 这是jax的官方规范。

  • 这是对规范的部分实施。 实现的其余部分包含在其他 Jersey jars 中。 注意在早期版本的Jersey 中,它们实际上将jax的rs规范打包到这个 jar 中。 直到后来,它才开始使用官方规范 jars 。

其他资源

  • 用于rest式服务( jax-rs )的javaapi 读不同规格版本的细节。
  • 完成RESTeasy发行版的实现。 如果 jax 。net 。com 。1.x 。是 jax - rs的。x/1.x id,则为 RESTeasy 3.x 行
  • 完成 Jersey 实现的实现。 你可以在页面顶部的"新泽西州 jax rs 2.0频道"链接中找到jax的2.x 实现。 还有到 Jersey 1.x 行分发的链接,它符合 1.x 规范。

还要注意,尽管不同的实现遵循规范,但是每个实现都有它自己的一组。 要了解更多内容,你应该通过不同实现的文档。 最流行的三个实现是 JerseyRESTeasy插件和CXF 。

原作者:
...