Glassfish 4 中的 JAX-RS 实现

JAX-RS implementantion in Glassfish 4

我对 JavaEE 和 Glassfish 有一点不了解。

据我所知JavaEE是一组不同服务的接口。其中之一是 JAX-RS,用于创建 RESTful 应用程序。

但是为了使用这些接口之一,我需要它的一个实现。所以有很多实现,例如 RESTEasy、Jersey 等。但我有点困惑。 Glassfish 使用哪个实现?它有自己的或实现现有的之一,例如 Jersey?

我的问题不仅与 JAX-RS 有关,而且与其他接口有关,但我想它对于每个接口都是类似的。

一般来说,每个应用程序服务器都有自己的不同 Java EE 规范的实现,我会给你几个 Glassfish 和 JBoss(目前是 Wildfly)的例子

  • JAX-RS - Glassfish 使用 Jersey,它也是参考实现(与使用 RESTEasy 的 JBoss 或 Wildfly 相反)
  • JPA - Glassfish 使用 EclipseLink(同样是参考实现)并且 JBoss 有 Hibernate
  • CDI - 两者都有焊接
  • JTA - Glassfish 使用 Glassfish 的 JTA 实现,JBoss 有 Narayana
  • JSF - 都使用 Mojarra

作为开发人员,您的项目通常只需要依赖规范中描述的接口(除非您想要规范之外的特殊内容),这对您意味着什么,因此您不关心实现,只需让您的应用程序服务器注入正确的一个。这对您的项目有好处,因为您不需要那么多依赖项。您还可以通过 Maven 将这些依赖项指定为 provided,这样当您构建项目时,它不会包含额外的 JAR,它会给您更轻量级的 JAR 或 WAR.