3

アプリケーションのプラグインを開発しています。プラグインは基本的に JAX-RS エンドポイントです。これらはパッケージ化され、Jetty を実行して登録するアプリケーションのクラスパスにデプロイされます。例:

@GET
@Path("/{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Product get(@PathParam("id") String id) {
    return Product.lookup(id);
}

JAX-RS 経由で任意の POJO を返すことができるようにするために、POJOMapping を有効にするか、Jackson Provider のようなものを明示的に登録したいと考えていました。

web.xmlまたはのClient構成 [ Jersey JSON Documentation ]にアクセスできれば、これを実行できることはわかっています。

残念ながら、プラグイン アーキテクチャを考えると、これらのメソッドにアクセスすることはできません。

Jackson などのプロバイダーを他の方法で登録する方法はありますか?

4

1 に答える 1

3

アプリケーションの一部としてJAX-RSApplicationクラスを使用して、JSON バインディング プロバイダーを登録できます。以下は、 EclipseLink MOXyを JSON プロバイダーとして登録する例です。

package org.example;

import java.util.*;
import javax.ws.rs.core.Application;
import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider;

public class CustomerApplication  extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        HashSet<Class<?>> set = new HashSet<Class<?>>(2);
        set.add(MOXyJsonProvider.class);
        set.add(CustomerService.class);
        return set;
    }
}

詳細については

于 2013-01-31T11:46:17.197 に答える