我正在尝试将 XML 数据反序列化为新创建的 Java 内容树:
我正在使用 SAX,在src\main\java\Summaries.java下有 Java 类,并试图简单地打印提取的文档:
String xmlPath = "C:\\workspace-sts-2.8.0.RELEASE\\RESTClient\\src\\main\\resources\\dailySummary.xml";
String xmlPath2 = "/dailySummary.xml";
String xmlPath3 = "/src/main/resources/dailySummary.xml";
InputStream inputStream = null;
InputSource inputSource = null;
Unmarshaller unmarshaller = null;
JAXBContext jc = null;
try
{
// read from a file
// or try xmlPath1 or try xmlPath3
inputStream = RESTtestclient.class.getClassLoader().getResourceAsStream(xmlPath2);
inputSource = new InputSource(inputStream);
SAXParserFactory sax = SAXParserFactory.newInstance();
sax.setNamespaceAware(true);
XMLReader reader = sax.newSAXParser().getXMLReader();
SAXSource saxSource= new SAXSource(reader, inputSource);
// use jAXB
Class[] classes = new Class[1];
classes[0]= Summaries.class;
jc = JAXBContext.newInstance(classes);
unmarshaller = jc.createUnmarshaller();
@SuppressWarnings("unchecked")
**JAXBElement<Object> doc = (JAXBElement<Object>) unmarshaller.unmarshal(saxSource);** // errors out here
sysout(doc);
}
我收到这样的错误:
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException: File "null" not found.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:505)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:206)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103)
at main.java.RESTtestclient.marshallJAXB(RESTtestclient.java:346)
at main.java.RESTtestclient.main(RESTtestclient.java:82)
Caused by: org.xml.sax.SAXParseException: File "null" not found.
at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1156)
at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java:499)
at org.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java:310)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1034)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
有什么想法可以为我指明正确的方向吗?