Har*_*nam 17 jax-rs jaxb restlet xml-binding resteasy
对不起这个生硬的问题.但是很多人日复一日地使用这两个术语但我不知道.我做了一些关于这个的研究并且知道它是分开的.但不明白它是如何相关的.我将首先分享我对这两个的理解.
JAXB是XML-to-Java绑定技术,支持模式和Java对象之间以及XML实例文档和Java对象实例之间的转换.在内部,JAXB在xml和java之间进行所有这些转换.这是xml的解析器,然后它知道xml中的哪个组件对应于java中的内容并且它会中断.从JAXB转换此答案是通过xjc(或codgen插件)等工具完成的.映射可能就像
xsd:string java.lang.String
xsd:integer java.math.BigInteger
JaxRs与众不同.这是处理请求的一组规范.意思是它说"GET("/ foo")"意味着用url/foo处理一个get调用.它只说明了这一点.怎么做的?是的,这称为此规范的实现.有许多实现,如restlet,resteasy,jersey,apache cxf等.这类似于逻辑和你在数学中实现的方式.算法的想法是桶搜索.这可以以任何方式实现.在Java术语中,JaxRs是接口,这4个restlet,resteasy,jersey,apache cxf是接口的实现.
现在请说出我的理解是否正确.然后告诉他们如何相关.请帮忙 .如果可能,图片说明将更有帮助.
bdo*_*han 19
你的理解基本上是正确的.JAXB和JAX-RS都是具有多个实现的Java Community Process(JCP)标准.
JAXB - 定义用于将Java域对象转换为XML或从XML转换的标准化元数据和运行时API.
JAX-RS - 为创建RESTful服务定义标准化元数据和运行时API.默认情况下,application/xml
媒体类型JAX-RS将使用JAXB将对象转换为XML或从XML转换对象.
例
在以下示例中,当GET
执行操作时,JAX-RS实现将返回a Customer
.JAXB impl将用于将该实例转换Customer
为客户端实际将接收的XML.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11195 次 |
最近记录: |