Мне нужно преобразовать Document
в MultipartFile
, и я обнаружил, что могу использовать MockMultipartFile
. Проблема в том, что я не могу получить InputStream
, который мне нужен для моего MockMultipartFile. То, что я делаю, это то, что я нашел в другом вопросе:
Document doc = XmlUtilities.stringToXml(xml);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
XMLWriter xmlWriter;
try {
xmlWriter = new XMLWriter(outputStream, OutputFormat.createPrettyPrint());
xmlWriter.write(doc);
xmlWriter.close();
} catch (IOException e1) {
e1.printStackTrace();
}
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
MultipartFile mpfile = new MockMultipartFile(functionalityName, functionalityName, "text/xml", inputStream);
Но есть проблема в xmlWriter.write(doc);
, потому что исключение выдается:
Invalid object: [#document: null]
Я посмотрел на этот ответ , но мой XML - это не файл на компьютере, это строка, которую я читаю из БД и преобразую в XML.
Я тоже пробовал это:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
OutputFormat outputFormat = new OutputFormat(document);
XMLSerializer serializer = new XMLSerializer(outputStream, outputFormat);
serializer.serialize(document);
return new ByteArrayInputStream(outputStream.toByteArray());
Но new OutputFormat
устарела.