3

我需要将一个 XML 文件从一个应用程序输出到另一个应用程序,但我不想在某处写这个 XML,然后在另一个应用程序上读取这个文件。

两者都是 Java 应用程序,并且(到目前为止!)我正在使用 XStream。

我该怎么做?

4

2 回答 2

3

注意: 我是EclipseLink JAXB (MOXy)负责人,也是JAXB (JSR-222)专家组的成员。

JAXB (JSR-222)Java API for RESTful Web Services (JAX-RS)的默认绑定层。这意味着您可以只创建一个返回 POJO 的服务,并且将为您处理所有到/从 XML 转换。

下面是一个示例 JAX-RS 服务,它查找Customer使用 JPA 的实例并将其返回到 XML。JAX-RS 实现将利用 JAXB 自动进行实际转换。

package org.example;

import java.util.List;
import javax.ejb.*;
import javax.persistence.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Stateless
@LocalBean
@Path("/customers")
public class CustomerService {

    @PersistenceContext(unitName="CustomerService", 
                        type=PersistenceContextType.TRANSACTION)
    EntityManager entityManager;

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

}

完整示例

于 2013-01-22T11:08:20.767 回答
2

对于重负载的应用程序,另一种方法是使用 google ProtoBuf而不是 XML 格式 - 这可以让您最大限度地减少应用程序之间的流量并提高性能。从我的角度来看,用于数据传输的 XML 不是一个好主意。

于 2013-01-22T11:18:14.147 回答