У меня возникли некоторые проблемы при преобразовании объекта String, в JAXBElement строки объекта, где мне нужно, чтобы установить это одинПреобразовать строку JAXBElement с помощью Java
Это целевой метод, где мне нужно, чтобы установить значение
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) Что такое 'o'? 2) Почему вы бросаете 'значение' в тот же тип, с которым он объявлен (это необязательно)? 3) Вызов 'toString()' для любого объекта возвращает ... ну, он возвращает строку, а не 'JAXBElement'. Что именно вы пытаетесь достичь? 4) «Это не позволяет мне». Какая у вас ошибка? –
Seelenvirtuose
@Seelenvirtuose Я обновил вопрос. Я просто хочу преобразовать этот вывод XML как строку JAXBElement, чтобы я мог установить его в этом методе. – Syed