在marshaller/Unmarshaller开发过程中可能会遇到javax.xml.bind.UnmarshalException: unexpected element异常,比如
unexpected element (uri:"", local:"Group"). Expected elements are <{}group>
Meet an exception when unmarshalling from xml
JAXBContext
jc
=
JAXBContext
.
newInstance
(
Group
.
class
);
Unmarshaller
unmarshaller
=
jc
.
createUnmarshaller
();
Group
group
=
(
User
)
unmarshaller
.
unmarshal
(
new
File
(
"group.xml"
));
通常的解决方法是:
- Change the root element on your XML to be "group"
- Add the annotation @XmlRootElement(name="Group") to the Group classs.
但有时这样做了,还是不能解决问题。原因在于ObjectFactory类。
在开发的过程中我们可能是根据XSD文件(XML文件的格式文件),通过JDK的/bin/xjc.exe生成java文件。有些时候我们会手工修改生成后的java文件;有些时候XSD文件会有冲突,我们会删除冲突的文件,分别生成java文件,这样就导致了xjc生成的ObjectFactory.java中没有包含全部的与XSD文件对应的方法。所以在删除冲突的XSD文件,分别生成java文件以后,要手动修改ObjectFactory.java,使之包含所有生成的java类的createXXX()方法。这样再编译打包,重现运行,就不会出现javax.xml.bind.UnmarshalException: unexpected element异常了。
分享到:
相关推荐
import javax.xml.bind.Unmarshaller;import io.github.oliverdm.eurofxref.*;// define data sourceURL url = new URL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");// parse XMLJAXBContext ...
T student = (T)unmarshaller.unmarshal(new StringReader(string)); reList.add(student); } catch (JAXBException e) { e.printStackTrace(); } } } return reList; }
Composing XML-based configuration metadata .......................................... 25 Using the container .......................................................................................... ...
Composing XML-based configuration metadata .......................................... 25 Using the container .......................................................................................... ...
web service 是java开源的一个远程调用技术,本项目使用了CXF来实现WEB Service的一个案例,同时项目里面有对JAXB的运用,JAXB技术主要运用在java类与xml之间的转换, Marshaller marshaller = context....
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,...•Unmarshaller接口,将XML数据反序列化为Java对象。
风暴动态 动机: 提供允许用户从配置文件创建风暴拓扑的包。 构建: mvn 包 例子: $storm jar target/storm-dynamic-builder-0.1.0-SNAPSHOT-jar-with-dependencies.jar ... 笔记: 依赖于 Storm 0.9.3 版本...
RUMGo 中的实验性 Ruby Unmarshaller参考执照麻省理工学院
Elastic Path的JSON Unmarshaller是流行的的扩展。 它使用JsonPath提供了基于注释的将深层JSON对象图分解为浅层POJO的功能。 JsonPath与XPath非常相似,只是用于JSON。 该库利用Java实现。 该库引入了一个字段注释@...
开源项目-cihangir-nisql.zip,Nisql - Nullable SQL Types with JSON marshaler/unmarshaller support
Juffrou代表“我们其余人的Java实用工具框架”,并且是有助于Java开发人员的有用类或微型框架的集合。... 还有一个易于使用的xml marshaller / unmarshaller,具有一些很酷的功能,例如嵌套bean的简化编组。
Unmarshaller Security - 将数据转化为代码执行 纸 距离 Chris Frohoff 和 Garbriel Lawrence 展示他们对 Java 对象反序列化漏洞的研究已经两年多了,最终导致了 Java 历史上最大的远程代码执行错误浪潮。 对此事的...
goq 例 import ( "log" ... "astuart.co/goq" ) // Structured representation for github file name table type example struct { Title string `goquery:"h1"` Files [] string `goquery:"table.files tbody tr.js...
JSONCoder 描述 Jsonex JSONCoder是一个轻量级的通用对象序列化/反序列化库,类似于Jackson,GSON或FastJson。 多年来,该库已在各种eBay项目中广泛使用。 它不能替代其他流行的库。 但是,它解决了一些其他替代产品...