jaxb jax-rs resteasy restlet xml-binding

¿Qué es JAXB y JAXRS? ¿Como están relacionados?



jax-rs resteasy (1)

Su comprensión es básicamente correcta. JAXB y JAX-RS son estándares de Java Community Process (JCP) con múltiples implementaciones.

JAXB : define los metadatos estandarizados y la API de tiempo de ejecución para convertir objetos de dominio Java a / desde XML.

JAX-RS : define los metadatos estandarizados y la API de tiempo de ejecución para la creación de servicios RESTful. De forma predeterminada, el tipo de medio de application/xml JAX-RS usará JAXB para convertir los objetos a / desde XML.

Ejemplo

En el siguiente ejemplo, cuando se realiza una operación GET , la implementación de JAX-RS devolverá un Customer . Se utilizará un implemento JAXB para convertir esa instancia de Customer al XML que realmente recibirá el cliente.

package org.example.service; import javax.ejb.*; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import org.example.model.*; @Stateless @LocalBean @Path("/customers") public class CustomerResource { @GET @Produces(MediaType.APPLICATION_XML) @Path("{id}") public Customer read(@PathParam("id") int id) { Customer customer = new Customer(); customer.setId(id); customer.setFirstName("Jane"); customer.setLastName(null); PhoneNumber pn = new PhoneNumber(); pn.setType("work"); pn.setValue("5551111"); customer.getPhoneNumbers().add(pn); return customer; } }

Lo siento por esta pregunta contundente. Pero muchos usan estos 2 términos día tras día, sin embargo, no sé. Hice un estudio sobre esto y supe lo que es por separado. Pero no entiendo cómo se relaciona. Voy a compartir lo que entendí sobre estos dos primero.

JAXB es una tecnología de enlace de XML a Java que permite transformaciones entre el esquema y los objetos de Java y entre los documentos de instancia de XML y las instancias de objeto de Java. Internamente, JAXB hace todas estas conversiones entre xml y java. Este es un analizador de xml y luego sabe qué componente en xml corresponde a lo que está en java y se rompe. La conversión de esta respuesta de JAXB se realiza mediante herramientas como xjc (o el complemento de código). El mapeo puede ser como

xsd: string java.lang.String

xsd: integer java.math.BigInteger

JaxRs es diferente. Este es un conjunto de especificaciones para el manejo de solicitudes. Lo que significa que dice "GET (" / foo ")" significa manejar una llamada get con url / foo. Sólo establece eso. Como esta hecho ? Sí, eso se llama implementación de esta especificación. Hay varias implementaciones como restlet, resteasy, jersey, apache cxf, etc. Esto es análogo a la lógica y la forma en que se implementa en las matemáticas. la idea del algoritmo es la búsqueda de cubo. Esto se puede implementar de cualquier manera. En términos de java, JaxRs es interfaz y estos 4 restlet, resteasy, jersey, apache cxf son implementaciones de la interfaz.

Ahora por favor di si mi entendimiento es correcto. Entonces dile cómo están relacionados. Por favor ayuda . Si es posible, una explicación pictórica será más útil.