2012-10-04 16 views
5

SpringデータREST example projectに基づいたプロジェクトがあり、wiki pageに基づいてJackson moduleを使用してカスタムシリアル化を実行しようとしています。Springデータ用のJacksonモジュールの登録REST

public class CustomModule extends SimpleModule { 
    public static Logger logger = LoggerFactory.getLogger(CustomModule.class); 

    public CustomModule() { 
     super("CustomModule", new Version(1, 0, 0, null)); 
    } 

    @Override 
    public void setupModule(SetupContext context) { 
     logger.debug("CustomModule.setupModule"); 
     SimpleSerializers simpleSerializers = new SimpleSerializers(); 
     simpleSerializers.addSerializer(new CustomDateTimeSerializer()); 
     context.addSerializers(simpleSerializers); 
    } 

} 

wiki pageは言う:あなたのApplicationContextの範囲内で宣言

任意のモジュールBeanには、輸出国でピックアップし、そのObjectMapperに登録されます

は、ここに私のジャクソンモジュールです。

私はまだSpringには新しいので、モジュールBeanの定義を間違った場所に置いている可能性があります。現在、それはrepositories-export.xmlから輸入されたsrc/main/resources/META-INF/spring-data-rest/shared.xml、である:

<bean id="customModule" class="org.hierax.wpa.schema.mapping.CustomModule" /> 

私はsetupModuleで、ログの文が表示されていないが、私は同じパッケージ内の他のクラスのログ出力を参照してください。

私はSpring Data REST 1.0.0.RC2を使用しています。

+0

は、あなたが今までにこの解決策を見つけますか? –

+0

いいえ、私はSpring Dataフォーラムで質問しましたが、おそらくそこに返信があります:http://forum.springsource.org/showthread.php?130782-Spring-Data-REST-registering-a-ジャクソンモジュールのシリアル化 –

答えて

4

(おそらくそれは、このスタックオーバーフローのポストから変更されているが)、私は春-データ-REST-を使用していた私の例では、あなたがにリンクされているwikiのエントリで概説した溶液を用いて、

し成功を収めてきました[email protected]

コードが正しいと思われ、アプリケーションコンテキストが正しく読み込まれていることを条件に、動作しない理由が表示されません。

私は日付フォーマッタの使用を例示私の単純なモジュールを添付しました:

@Component 
public class JsonMarshallingConfigModule extends SimpleModule { 

    public JsonMarshallingConfigModule() { 
    super("JsonMarshallingConfigModule", new Version(1, 0, 0, "SNAPSHOT")); 
    } 

    @Override public void setupModule(SetupContext context) { 
    context.getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")); 
    } 
} 

おそらくそれが問題や春-DATA-あるInfactはジャクソンモジュールである場合に概説するために使用することができます残りのmvcweb。

+0

あなたのソリューションを共有してくれてありがとう!私は最近、[email protected]に更新し、サンプルプロジェクトのようにコードベースの設定に移行しました.CustomModuleに@Componentを追加するようになりました。 –

+0

動作させられないようです。コンポーネントがロードされていますが、インスタンスが作成されているのがわかりますが、setupModule()は呼び出されません。どうして? –

関連する問題