Код: Выделить всё
public abstract class AbstractTypedEventHandler implements EventHandler {
@Getter
private final ObjectMapper handlerMapper;
@Getter
private final TypeReference type;
protected AbstractTypedEventHandler(TypeReference eventType) {
this(JsonMapper.builder().configure(MapperFeature.ALLOW_FINAL_FIELDS_AS_MUTATORS, false).build(),
eventType);
}
protected AbstractTypedEventHandler(ObjectMapper handlerMapper, TypeReference eventType) {
this.handlerMapper = handlerMapper;
this.type = eventType;
}
@Override
public boolean parseMessage(JsonNode text, Tracer tracer) throws IOException {
E event = handlerMapper.treeToValue(text, getType());
handleEvent(event)
}
public abstract boolean handleEvent(E event);
}
< /code>
Для удобства я написал еще один абстрактный обработчик для обработки основного использования использования основного наведите события: < /p>
public abstract class TypedEventHandler extends AbstractTypedEventHandler {
protected TypedEventHandler() {
super(new TypeReference() {});
}
protected TypedEventHandler(ObjectMapper mapper) {
super(mapper, new TypeReference() {});
}
}
Код: Выделить всё
public class PojoEventHandler extends TypedEventHandler {
@Override
public boolean handleEvent(TypedEvent event) {
var pojo = event.getResource(); // throws
}
}
}
< /code>
Вот конкретная ошибка: < /p>
java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class a.b.c.service.Pojo (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; a.b.c.service.Pojo is in unnamed module of loader 'app')
at a.b.c.service.eventhandlers.PojoEventHandler.handleEvent(PojoEventHandler.java:38)
at a.b.c.service.eventhandlers.PojoEventHandler.handleEvent(PojoEventHandler.java:24)
at a.b.c.framework.common.EventHandler.executeHandler(EventHandler.java:57)
at a.b.c.framework.eventhandlers.AbstractTypedEventHandler.parseMessage(AbstractTypedEventHandler.java:83)
at a.b.c.framework.common.jms.JmsMessageHandler.onMessage(JmsMessageHandler.java:79)
...
Подробнее здесь: https://stackoverflow.com/questions/797 ... -reference