IBM JSON4J を使用した JAXB アノテーション付きオブジェクトによる JSON リソース・メソッドの実装

WebSphere® Application Server バージョン 8 で JAXB アノテーション付きクラスの JSON へのシリアライズを処理するデフォルトの JSON プロセッサーは、Jackson です。 代わりに以前の Feature Packs for Web 2.0 の IBM® JSON4J プロセッサーを使用する場合には、プロバイダー・クラスを追加しなければなりません。 Jackson の方がより優れた JSON 処理を提供します。

このタスクについて

アプリケーションで IBM JSON4J プロセッサーを使用するには、JSON4JJAXBProvider クラスを拡張する Java™ クラスをアプリケーションに追加する必要があります。

手順

  1. アノテーション・スキャンを使用し、javax.ws.rs.core.Application サブクラスを介して JAX-RS クラスすべてを指定しない場合には、com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider クラスを拡張する Java クラスを追加する必要があります。 以下の例は、カスタム JSON4JJAXBProvider クラスを示しています。
    package com.example.jaxrs;
    @Provider
    @Consumes(value = {MediaType.APPLICATION_JSON, "application/javascript"})
    @Produces(value = {MediaType.APPLICATION_JSON, "application/javascript"})
    public class CustomJSON4JJAXBProvider extends
        com.ibm.websphere.jaxrs.providers.json4j.JSON4JJAXBProvider {
    }
  2. 使用している JAX-RS クラスをリストするカスタマイズされた javax.ws.rs.core.Application クラスを使用する場合、Application サブクラスにカスタマイズされた JSON4JJAXBProvider を追加しなければなりません。 以下の例は、カスタマイズされた Application サブクラスを示しています。
    package com.example.jaxrs;
    public class CustomApplication extends javax.ws.rs.core.Application {
    
        @Override
        public Set<Class<?>> getClasses() {
            Set<Class<?>> classes = new HashSet<Class<?>>();
            /* add your normal JAX-RS classes */
    
            classes.add(CustomJSON4JJAXBProvider.class);
            return classes;
        }
    }

タスクの結果

これで、JAXB から JSON へのシリアライズに、本製品に組み込まれているデフォルトの Jackson プロセッサーではなく、IBM JSON4J プロセッサーが使用されるようになりました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_jsoncontent_jaxb_json4j
ファイル名:twbs_jaxrs_jsoncontent_jaxb_json4j.html