Я пытаюсь сопоставить SOAP-запрос с Java POJO, используя org.modelmapper.ModelMapper
Но он не работает из-за структуры источника, у него есть список строк ....
Ниже приведен фрагмент исходного сообщения мыла из трех основных компонентов, целевого DTO Java POJO и логики сопоставления конечных точек службы.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EventRequestBodyType", propOrder = {
"content"
})
public class EventRequestBodyType {
@XmlElementRefs({
@XmlElementRef(name = "field1", namespace = "http://x.y.z.event", type = JAXBElement.class, required = false),
@XmlElementRef(name = "field2", namespace = "http://x.y.z.event", type = JAXBElement.class, required = false),
@XmlElementRef(name = "field3", namespace = "http://x.y.z.event", type = JAXBElement.class, required = false),
@XmlElementRef(name = "field4", namespace = "http://x.y.z.event", type = JAXBElement.class, required = false),
@XmlElementRef(name = "field5", namespace = "http://x.y.z.event", type = JAXBElement.class, required = false)
})
protected List<JAXBElement<? extends Serializable>> content;
/**
* Gets the rest of the content model.
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
*
*
*/
public List<JAXBElement<? extends Serializable>> getContent() {
if (content == null) {
content = new ArrayList<JAXBElement<? extends Serializable>>();
}
return this.content;
}
}
Это POJO (что я пытаюсь сопоставитьto)
import lombok.Data;
@Data
public class EventDTO {
private String field1;
private String field2;
private String field3;
private String field4;
private String field5;
}
Ниже приведен фрагмент кода в моем сервисе, выполняющий сопоставление:
if(null!= soapEventRequest.getRequestBody()) {
EventRequestBodyType eventRequestBodyType =
soapEventRequest.getRequestBody();
EventDTO event = modelMapper.map(eventRequestBodyType,EventDTO.class);
eventBody.setEventRegisterAssessment(event);
}
Как мне сопоставить EventDTO с 5 полями, возвращенными в EventRequestBodyType.getContent ().Любые идеи будут приветствоваться.Я должен использовать библиотеку RoleMapper, любой подход или предложения приветствуются.Заранее спасибо