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 との間のすべての変換が処理されることを意味します。

Customer以下は、 JPA を使用するインスタンスをルックアップし、それを XML に返す JAX-RS サービスの例です。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

負荷の高いアプリケーションの別のアプローチは、XML形式の代わりにgoogle ProtoBufを使用することです。これにより、アプリケーション間のトラフィックを最小限に抑え、パフォーマンスを向上させることができます。私の観点からは、データ転送用のXMLはお勧めできません。

于 2013-01-22T11:18:14.147 に答える