Преобразовать строку в JAXBElement, используя Java

У меня возникли проблемы при преобразовании объекта String в строковый объект JAXBElement, где мне нужно установить этот

Это целевой метод, где мне нужно установить значение

public void setData(JAXBElement<String> value) {
    this.data = ((JAXBElement<String> ) value);
}

Для этого я написал код примерно так

 ObjectFactory factory = new ObjectFactory();
    JAXBElement<ApplicationIngestionRequest> jaxbElement =  new JAXBElement(
            new  QName(ApplicationIngestionRequest.class.getSimpleName()), ApplicationIngestionRequest.class, request);

    StringWriter writer = new StringWriter();
    JAXBContext context =  JAXBContext.newInstance(ApplicationIngestionRequest.class);
    context.createMarshaller().marshal(jaxbElement, writer);
    LOG.info("JAXBElement object :\n"+ writer.toString());
    Unmarshaller u = context.createUnmarshaller();
    JAXBElement<ApplicationIngestionRequest> o = (JAXBElement<ApplicationIngestionRequest>) u.unmarshal(new StringReader(writer));

Журнал дает мне следующий вывод

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ApplicationIngestionRequest><BranchCode></BranchCode><SourceCode>0000005511</SourceCode></ApplicationIngestionRequest>

Теперь, когда я пытаюсь установить в методе как

losRequest.setData(o.toString());

Это не позволяет мне устанавливать в качестве ожидаемого формата JAXBElement. Любые идеи очень приветствуются.

1 ответ

Согласно фрагменту кода [setData(значение JAXBElement)], setData, принять экземпляр '(JAXBElement'). Но здесь вы пытаетесь установить строковое значение [losRequest.setData(o.toString())] . Здесь вы должны установить экземпляр JAXBElement. Это может быть проблемой.

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