2012-01-19 24 views
1

私はJacksonのプロパティを変更するために次のコードを使用しました。私はXMLRootElementsでクラスに注釈をつけ、Jerseyにjacksonを使ってJSONに変換させる。JAX-RS Jersey JSON ObjectMapper設定が無視されました

クラスには注釈が付けられています。

@Provider 
@Produces("application/json") 
public class JacksonObjectMapper implements ContextResolver<ObjectMapper> { 
private ObjectMapper objectMapper; 

    public JacksonObjectMapper() throws Exception { 
     objectMapper.configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); 
    } 

@Override 
    public ObjectMapper getContext(Class<?> type) { 
     return this.objectMapper; 
    } 
} 

上記の構成、予想通り、私はジャージ(すなわち:彼自身の機能を使用して)外ジャクソンを使用している場合は動作しますが、私はジャージーアプリ内で使用する場合は、設定オプションは無視されます。

XMLからJSONへの直列化/逆シリアル化に私のクラスを使用するようJerseyに指示する方法はありますか?

+0

は例から欠落している何かですか?具体的には、 'ObjectMapper'を構築していますか、それを提供するものがありますか? – StaxMan

答えて

2

あなたjavax.ws.rs.core.Applicationのクラスのリストにこのクラスを追加します。

application.addClass(JacksonObjectMapper.class) 
関連する問題