gpt4 book ai didi

Jersey Restful 应用程序上的 JAXB 或 Xstream

转载 作者:行者123 更新时间:2023-12-04 20:15:54 25 4
gpt4 key购买 nike

我想知道哪种解决方案更适合 Jersey Rest Web 服务。在某些情况下,JAXB 无法处理某些类型。使用 XStream 是不是更好?

最佳答案

注意:我是 EclipseLink JAXB (MOXy) JAXB (JSR-222) 的领导和成员专家组。

I want to know which solution is better for a Jersey Rest Web service.

JAXB (JSR-222) 是 JAX-RS 的默认绑定(bind)层。这意味着如果您有以下方法,JAXB 将自动用于将返回类型 (Customer) 转换为 XML(使用 Jersey 时为 JSON)。

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public Customer read(@PathParam("id") long id) {
return entityManager.find(Customer.class, id);
}

如果您需要对 JAXBContext 进行更多控制,您可以使用名为 ContextResolver 的 JAX-RS 机制:

In some cases JAXB is not able to handle some types

JAXB 能够处理所有类型,默认情况下或通过使用 XmlAdapter。下面是一些示例,其中 XmlAdapter 与 Joda-Time 类型和一些不可变域对象一起使用:

Is it better to use XStream?

下面是我写的一篇博客文章的链接,其中我使用 JAXB 和 XStream 将相同的对象模型映射到相同的 XML 文档,您可能感兴趣:

MOXy 等 JAXB 实现还包含许多您会发现有用的扩展,例如基于 XPath 的映射 (@XmlPath) 和外部映射文档:

有关在 Jersey 中使用 MOXy 作为 JAXB 提供程序的示例,请参阅:

关于Jersey Restful 应用程序上的 JAXB 或 Xstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8723887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com