Глобальный конвертер регистров Apache Johnzon

Я использую TomEE8 для обслуживания JAX-RS Rest API, и по умолчанию сервер использует apache-johnzon для сопоставления json. Некоторые из моих объектов требуют специального конвертера для своих атрибутов, поэтому я создал простой конвертер.

public class ObjectIdConverter implements Converter<ObjectId> {
    @Override
    public String toString(final ObjectId instance) {
        return instance.toString();
    }

    @Override
    public ObjectId fromString(final String text) {
        return new ObjectId(text);
    }
}

и аннотировал атрибуты

@JohnzonConverter( ObjectIdConverter.class )
private ObjectId id;

Теперь я столкнулся с проблемой, что у меня есть список объектов, структура которого я не знаю и поэтому не могу аннотировать какие-либо атрибуты. Как указано здесь "Then once your converter developed you can either register globally on the MapperBuilder or simply decorate the field you want to convert with @JohnzonConverter:" Я смогу зарегистрировать конвертер на MapperBuilder но я не знаю, как это сделать.

В MapperBuilder есть этот метод new MapperBuilder().addObjectConverter(ObjectId.class, new ObjectIdConverter());но это только для одного экземпляра, а не для Mapper, используемого в конечной точке REST. Мы будем очень благодарны за любые подсказки о том, как зарегистрировать конвертер в глобальном масштабе.

0 ответов

Другие вопросы по тегам