I\'m trying to get my head around some concepts in Java:
Yes, this isn't anything new. Think about JDBC, java provides the
interfaces (Connection
, Statement
, ResultSet
etc) but it is up
to database vendors to provide implementations.
If you're using a JSR-311 implementation like Jersey or Apache CXF
then you'll annotate your classes with the javax.ws.rs
annotations, such as @Path
, @GET
, @Produces
etc. This is why you need to explicitly have JSR-311 as a maven dependency.
Yes, usually. Have a look at the JSR list on wiki.
You need both the JSR and the implementation. The annotations are in the JSR, the implementation provides supporting classes, such as com.sun.jersey.spi.container.servlet.ServletContainer
.
No, it is necessary to have both as dependencies (see point 4); you won't get classpath conflicts.