Я использую весеннюю загрузку. Я сгенерировал объекты запроса / ответа мыла, используя apache CXF.
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.3.3</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/...</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
Я хочу сериализовать объект запроса JAXB, который я получаю после выполнения веб-службы обратно в xml , чтобы сохранить егона диске для последующего повторного использования.
Я пробовал это:
JAXBContext context = JAXBContext.newInstance(instance.getClass().getPackage().getName());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
StringWriter sw = new StringWriter();
marshaller.marshal(instance, sw);
String xml = sw.toString();
Но я получаю сообщение об ошибке ниже:
"невозможно выполнить маршалинг типа \"com.uk.services.consumer.schema.v4.search.searchresponse.QuotationSearchResponse \ "как элемент, так как отсутствует аннотация @XmlRootElement"}
Как сериализовать объекты, созданные apache CXF назад к XML . Я использую Spring Boot .
для справки, сгенерированный источник из CXF выглядит следующим образом.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "QuotationSearchResponse")
public class QuotationSearchResponse
extends CommonResponse
{
}