【问题标题】:how can I output a XML file to a REST web service in Java so another application can consume this XML?如何将 XML 文件输出到 Java 中的 REST Web 服务,以便另一个应用程序可以使用此 XML?
【发布时间】:2013-01-05 14:03:23
【问题描述】:

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

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

我该怎么做?

【问题讨论】:

    标签: java xml rest xstream


    【解决方案1】:

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

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

    下面是一个示例 JAX-RS 服务,它使用 JPA 查找 Customer 的实例并将其返回到 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);
        }
    
    }
    

    完整示例

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        • 1970-01-01
        • 2011-06-09
        • 2014-02-27
        • 2023-03-29
        相关资源
        最近更新 更多