2015-10-29 1 views
0

Я не понимаю одну вещь с JavaEE и Glassfish.JAX-RS реализация в Glassfish 4

Насколько я знаю, JavaEE представляет собой набор интерфейсов различных сервисов. Одним из них является JAX-RS, который используется для создания приложений RESTful.

Но для того, чтобы использовать один из этих интерфейсов, мне нужно реализовать его. Таким образом, существует множество реализаций, например RESTEasy, Jersey и т. Д. Но я немного смущен. Какое воплощение использует Glassfish? У этого есть свой собственный или реализовать один из существующих, например, Джерси?

Мой вопрос касается не только JAX-RS, но и других интерфейсов, но я полагаю, что он аналогичен для каждого интерфейса.

+2

Glashfish использует Джерси. –

+0

Спасибо. Где я могу найти каждое воплощение, которое использует Glassfish? – tdudzik

+0

Как правило, Google для «стеклянной рыбы » является самым быстрым. При обсуждении конкретного API спецификации JavaEE людям нравится перебирать, какая реализация идет с каждым из популярных контейнеров JavaEE. Я также хотел бы подчеркнуть, что забота об этом - именно то, что платформа JavaEE пытается отнять у вас. Вам не нужно заботиться о том, какая реализация используется, пока вы не столкнетесь с несчастьями, в какой момент будет очень ясно, какая реализация это из исключения stacktrace. – Gimby

ответ

1

Как правило, каждый сервер приложений имеет собственную реализацию различных спецификаций Java EE, я дам вам несколько примеров для Glassfish и JBoss (в настоящее время Wildfly)

  • JAX-RS - Glassfish в использовании Джерси, который также ссылки на реализацию (в отличие от JBoss или Wildfly, который использует Resteasy)
  • JPA - Glassfish использует EclipseLink (опять же, эталонную реализацию) и JBoss имеет Hibernate
  • CDI - и имеет Weld
  • JTA - Glassfish использует JTA Implementat иона для Glassfish, JBoss имеет Нараяна
  • JSF - как использует Mojarra

Что это значит для вас как разработчика, что ваш проект, как правило, должен зависеть только от интерфейса, описанного в спецификации (если вы не хотите что-то особенное вне спецификацию), поэтому вам не нужна реализация, и пусть ваш сервер приложений будет правильно использовать его. Это хорошо для вашего проекта, потому что вам не нужно много зависимостей. Вы также можете указать эти зависимости как provided через Maven, поэтому, когда вы строите свой проект, он не будет содержать дополнительных JAR, и это даст вам более легкий JAR или WAR.

Смежные вопросы