estoy tratando de conseguir mi cabeza alrededor de algunos conceptos en Java:JAX-RS en relación a Jersey y JSRs
- JSR (s): describir las especificaciones, pero no realizar implementaciones reales. P.ej. http://jsr311.java.net/ es el "hogar" de "API de Java ™ para servicios web RESTful". Sirve como referencia común para todas las implementaciones de JSR-311.
- Uno puede descargar las interfaces (?) De JSR-311 desde http://mvnrepository.com/artifact/javax.ws.rs/jsr311-api, sin embargo, a menos que usted esté implementando JSR-311 usted mismo no tiene ningún valor particular?
- JSR (s) generalmente/siempre tendrá una implementación de referencia. Para encontrarlo, tendrá que buscar en Google "implementación de referencia JSR XXX" o ver la página de inicio de especificaciones (por ejemplo, http://jsr311.java.net/)
- Para JSR-311 esta implementación de referencia es Jersey. Usando Maven puedes obtener el servidor jersey desde http://mvnrepository.com/artifact/com.sun.jersey/jersey-server/1.9. Dado que Jersey proporciona una implementación de acuerdo con las interfaces encontradas en http://mvnrepository.com/artifact/javax.ws.rs/jsr311-api, solo necesita agregar Jersey como una dependencia en su proyecto y no la jsr311-api misma. (esto se aplica a todas las tecnologías JSR?)
- Poner http://mvnrepository.com/artifact/javax.ws.rs/jsr311-api y http://mvnrepository.com/artifact/com.sun.jersey/jersey-server/1.9 como dependencias en su proyecto posiblemente causará problemas de classpath?
¿Estoy completamente apagado o algo?
Así que tal vez la verdadera pregunta es ¿por qué Jersey no declara jsr-311 como una dependencia, en lugar de duplicar las clases dentro de su propio jar? –