Orika Mapper: невозможно зарегистрировать преобразователи после инициализации MapperFacadeJAVA

Программисты JAVA общаются здесь
Anonymous
Orika Mapper: невозможно зарегистрировать преобразователи после инициализации MapperFacade

Сообщение Anonymous »

Я получаю эту ошибку: «java.lang.IllegalStateException: невозможно зарегистрировать преобразователи после инициализации MapperFacade» для моего картографа Oricka. Я использую проект Spring Framework (5.3.12) с Java 17. Я попробовал несколько решений, но каждое приводило к той же ошибке, что и упомянутая. Я попробовал это решение Orika Mapper, сделав addConverter() статической функцией в приведенном ниже коде, но это не сработало:

Код: Выделить всё

import ma.glasnost.orika.Converter;
import ma.glasnost.orika.Mapper;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.ConfigurableMapper;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Map;

@Component
public class OrikaMapper extends ConfigurableMapper implements ApplicationContextAware {
private MapperFactory factory;

@Override
protected void configureFactoryBuilder(final DefaultMapperFactory.Builder factoryBuilder) {
}

@Override
protected void configure(final MapperFactory factory) {
this.factory = factory;
}

@Override
public void setApplicationContext(final ApplicationContext applicationContext) throws BeansException {
addAllSpringBeans(applicationContext);
}

private void addAllSpringBeans(final ApplicationContext applicationContext) {
final Map converters = applicationContext.getBeansOfType(Converter.class);
for (final Converter converter : converters.values()) {
addConverter(converter);
}

final Map mappers = applicationContext.getBeansOfType(Mapper.class);
for (final Mapper mapper : mappers.values()) {
addMapper(mapper);
}
}

public void addConverter(final Converter converter) {
factory.getConverterFactory().registerConverter(converter);
}

public void addMapper(final Mapper mapper) {
factory.classMap(mapper.getAType(), mapper.getBType())
.byDefault()
.customize((Mapper) mapper)
.register();
}
}
Зависимость картографа Orika:

Код: Выделить всё

        
ma.glasnost.orika
orika-core
1.5.4

Будем благодарны за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/788 ... initialize

Вернуться в «JAVA»