【发布时间】:2012-05-21 10:15:05
【问题描述】:
我正在尝试将 xml 文件(作为 byte[])绑定到 java 对象。这是我的代码-
public voidinputConfigXML(String xmlfile, byte[] xmlData) {
IBindingFactory bFact = BindingDirectory.getFactory(GroupsDTO.class);
IUnmarshallingContext uctx = bFact.createUnmarshallingContext();
groups = (GroupsDTO) uctx.unmarshalDocument(new ByteArrayInputStream(xmlData), "UTF8");
}
unmarshalDocument() 给了我这个例外。我该怎么办?
仅供参考:作为 JUnit 测试用例运行
以下是堆栈跟踪-
Error parsing document (line 1, col 1)
org.xmlpull.v1.XmlPullParserException: only whitespace content allowed before start tag and not \u0 (position: START_DOCUMENT seen \u0... @1:1)
at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1519)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jibx.runtime.impl.XMLPullReaderFactory$XMLPullReader.next(XMLPullReaderFactory.java:291)
at org.jibx.runtime.impl.UnmarshallingContext.toStart(UnmarshallingContext.java:451)
at org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(UnmarshallingContext.java:2755)
at org.jibx.runtime.impl.UnmarshallingContext.unmarshalDocument(UnmarshallingContext.java:2905)
at abc.dra.DRAAPI.inputConfigXML(DRAAPI.java:31)
at abc.dra.XMLToObject_Test.test(XMLToObject_Test.java:34)
[...]
这是我形成 byte[]-
的代码void test() {
String xmlfile = "output.xml"
File file = new File(xmlfile);
byte[] xmlData = new byte[(int) file.length()];
groups = dra.inputConfigXML(xmlfile, xmlData);
}
【问题讨论】:
-
请附加 Stacktrace。里面可能有有趣的信息。
-
请将 abc.dra.DRAAPI.inputConfigXML 添加到您的问题中
-
@ChristianKuetbach 我在开头添加的代码是 abc.dra.DRAAPI.inputConfigXML
-
不,有趣的部分是 xmlData 的创建。而那段代码不见了。
-
@ChristianKuetbach 我在问题底部添加了代码
标签: java eclipse unmarshalling jibx xmlpullparser