【发布时间】:2024-01-04 09:46:01
【问题描述】:
我能够使用 FileInputStream 将 xml 文件解组到类以读取 xml 内容,但在解组代码中使用 InputStream 而不是 FileInputStream 时遇到问题。
元帅:
try {
JAXBContext jaxbContext = JAXBContext.newInstance(Message.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
JAXBElement<Message> je =
new JAXBElement<Message> (new QName(Message.class.getSimpleName()), Message.class, message);
jaxbMarshaller.marshal(je, os);
} catch (JAXBException e) {
e.printStackTrace();
}
解组:
JAXBContext jc = null;
try {
jc = JAXBContext.newInstance(Message.class);
Unmarshaller um = jc.createUnmarshaller();
JAXBElement<Message> je = (JAXBElement<Message>) um.unmarshal(new StreamSource(is), Message.class);
message = je.getValue();
} catch (JAXBException | FileNotFoundException e) {
e.printStackTrace();
}
我得到的错误:
javax.xml.bind.UnmarshalException
- with linked exception:
[java.net.SocketException: Connection reset]
【问题讨论】:
标签: java xml serialization deserialization unmarshalling