我需要将Document
转换为MultipartFile
,发现可以使用MockMultipartFile
。问题是我无法获得MockMultipartFile所需的InputStream
。我正在做的是在另一个问题中发现的这个问题:
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]
我看过this answer,但是我的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
。