Springを使用してWebアプリを実行しており、シリアル化ツールとしてxstreamを使用しています。カスタムコンバーターを含めるようにマーシェラーを定義しましたが、xmlを読み取るときに、xstreamが一部のフィールドを正しく解析できないため、登録したコンバーターが無視されるようです。
マーシャラーのinit関数は次のとおりです。
public void init() {
XStream xstream = new XStream() {
protected MapperWrapper wrapMapper(MapperWrapper next) {
return new MapperWrapper(next) {
public boolean shouldSerializeMember(Class definedIn, String fieldName) {
return definedIn != Object.class ? super.shouldSerializeMember(definedIn, fieldName) : false;
}
};
}
};
xstream.setMode(XStream.NO_REFERENCES);
xstream.addDefaultImplementation(ArrayList.class, PersistentList.class);
xstream.addDefaultImplementation(ArrayList.class, PersistentBag.class);
xstream.addDefaultImplementation(HashMap.class, PersistentMap.class);
xstream.addDefaultImplementation(java.util.HashSet.class, PersistentSet.class);
xstream.alias("Array", PersistentBag.class);
xstream.alias("list", PersistentBag.class);
Mapper mapper = xstream.getMapper();
xstream.registerConverter(new HibernateCollectionConverter(mapper));
xstream.registerConverter(new HibernateMapConverter(mapper));
xstream.registerConverter(new DateConverter());
xstream.registerConverter(new TimeStampCustomConverter());
xstream.registerConverter(new LongConverter());
xstream.registerConverter(new IntConverter());
xstream.registerConverter(new DoubleConverter());
}
私は何が欠けていますか?