Jersey Restful应用程序上的JAXB或Xstream
我想知道哪种解决方案更适合Jersey Rest Web服务。在某些情况下,JAXB无法处理某些类型。使用XStream更好吗?取决于您的用例-如果您认为JAXB将是一个重要的限制,那么您可以使用XStream。顺便说一句,Jersey最近增加了对MOXy的支持,这可以帮助您克服JDK中JAXB引用impl中的一些困境 Pro JAXBJersey Restful应用程序上的JAXB或Xstream,jaxb,jersey,xstream,Jaxb,Jersey,Xstream,我想知道哪种解决方案更适合Jersey Rest Web服务。在某些情况下,JAXB无法处理某些类型。使用XStream更好吗?取决于您的用例-如果您认为JAXB将是一个重要的限制,那么您可以使用XStream。顺便说一句,Jersey最近增加了对MOXy的支持,这可以帮助您克服JDK中JAXB引用impl中的一些困境 Pro JAXB 球衣的开箱即用功能 能够指定自己的JAXBContext 稳定;Jersey/JAXB团队的大量测试/支持 Con JAXB 在某些特殊情况下,它不能像预
- 球衣的开箱即用功能
- 能够指定自己的JAXBContext
- 稳定;Jersey/JAXB团队的大量测试/支持
- 在某些特殊情况下,它不能像预期的那样工作(由于这些语言的不同性质,java/xml绑定具有局限性)
- 你可能对此有一些经验
- 您需要在Jersey中实现对它的支持(MessageBodyReaders/Writer)
Customer
)转换为XML(以及使用Jersey时的JSON)
如果您需要对JAXBContext进行更多控制,可以使用名为ContextResolver
的JAX-RS机制:
XmlAdapter
。下面是一些示例,其中XmlAdapter
与Joda时间类型和一些不可变域对象一起使用:
@XmlPath
)和外部映射文档:
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public Customer read(@PathParam("id") long id) {
return entityManager.find(Customer.class, id);
}