tdudzik
tdudzik

Reputation: 391

JAX-RS implementantion in Glassfish 4

I don't understand one thing with JavaEE and Glassfish.

As far as I know JavaEE is a set of interfaces of different services. One of them is JAX-RS which is used for creating RESTful applications.

But in order to use one of these interfaces I need an implementantion of it. So there are plenty of implementantions, for instance RESTEasy, Jersey etc. But I'm confused a bit. Which implementantion does Glassfish use? It has its own or implement one of existing, for example Jersey?

My question is not only about JAX-RS but also about other interfaces but I suppose that it's analogously for every interface.

Upvotes: 0

Views: 274

Answers (1)

Petr Mensik
Petr Mensik

Reputation: 27496

Generally, each application server has it's own implementation of different Java EE specifications, I'll give you few examples for Glassfish and JBoss (currently Wildfly)

  • JAX-RS - Glassfish is using Jersey, which is also reference implementation (in opposed to JBoss or Wildfly which uses RESTEasy)
  • JPA - Glassfish uses EclipseLink (again, reference implementation) and JBoss has Hibernate
  • CDI - both has Weld
  • JTA - Glassfish uses JTA Implementation For Glassfish, JBoss has Narayana
  • JSF - both uses Mojarra

What it means for you as a developer that your project typically needs to depend only on interface described in specification (unless you want something special outside of the spec), so you don't care about implementation and just let your application server inject correct one. This is good for your project because you don't need that many dependencies. You can also specify those dependencies as provided via Maven so when you build your project it won't contain additional JARs and it will give you more lightweight JAR or WAR.

Upvotes: 2

Related Questions