- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当我想反序列化已从字节数组序列化的 JAXBElement 时遇到问题。我有异常(exception):
Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Avizo"). Expected elements are (none)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:647)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:238)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:105)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1048)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:483)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:465)
这是我的代码:
public class JAXBTest {
public static byte[] serialize(JAXBElement<AvizoType> xmlData) throws Exception {
// Result stream buffer
ByteArrayOutputStream bos = new ByteArrayOutputStream();
final JAXBContext jaxbContext = JAXBContext.newInstance(AvizoType.class);
final Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.marshal(xmlData, new StreamResult(bos));
return bos.toByteArray();
}
public static JAXBElement<AvizoType> deserialize(byte[] data) throws Exception {
// Result stream buffer
ByteArrayInputStream bis = new ByteArrayInputStream(data);
final JAXBContext jaxbContext = JAXBContext.newInstance(AvizoType.class);
final Unmarshaller marshaller = jaxbContext.createUnmarshaller();
return (JAXBElement<AvizoType>) marshaller.unmarshal(bis);
}
public static void main(String[] args) throws Exception {
AvizoType type = new AvizoType();
type.setAvizoId(1);
JAXBElement<AvizoType> element = new JAXBElement(new QName("Avizo"), AvizoType.class, type);
byte[] result = serialize(element);
deserialize(result);
}
}
avizoType 是从 xsd 生成的类:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.10-b140310.1920
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2015.03.23 at 01:59:39 PM CET
//
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* <p>
* Java class for AvizoType complex type.
*
* <p>
* The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="AvizoType">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="AvizoId" type="{http://www.w3.org/2001/XMLSchema}long"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AvizoType", propOrder = { "avizoId" })
public class AvizoType implements Serializable {
@XmlElement(name = "AvizoId")
protected long avizoId;
/**
* Gets the value of the avizoId property.
*
*/
public long getAvizoId() {
return avizoId;
}
/**
* Sets the value of the avizoId property.
*
*/
public void setAvizoId(long value) {
this.avizoId = value;
}
}
最佳答案
您的类 AvizoType
旁边应该有一个名为 ObjectFactory
的类。如果是这样,请尝试这种方法:
final JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
return ((JAXBElement<AvizoType>) jaxbContext.createUnmarshaller().unmarshal(
inputStream)).getValue();
关于java - Unmarshalexception 意外元素,预期元素是(无),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29229308/
我遵循了本教程:https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html#5 我在命令提示符下
我正在尝试解码我的 DOM 解析文档,以便我可以更新我的 XML。但我收到以下命名空间错误: javax.xml.bind.UnmarshalException: unexpected element
当我尝试将 XML 解码回 java 代码时,出现以下异常。好像我在某处缺少命名空间声明,但我不确定在哪里。 javax.xml.bind.UnmarshalException: unexpected
我尝试复制 http://www.ejbtutorial.com/java-rmi/a-step-by-step-implementation-tutorial-for-java-rmi 中的教程在
我们正在将应用程序从 Jboss 6 迁移到 Wildfly 10,大多数 Web 服务都运行正常,但我们面临来自外部 Web 服务的响应中日期标签为空的问题: java.security.Privi
所以我试图解析一个 xml 并将其解码为一个程序。这是示例 xml: FINACLE 2014-06-21T19
异常javax.xml.bind.UnmarshalException:意外元素(uri:“http://services.forddirect.fordvehicles.com/searchTest
这是我第一次使用 RMI,这是我写的主要内容: public class Main { public static void main(String[] args) {
当我想反序列化已从字节数组序列化的 JAXBElement 时遇到问题。我有异常(exception): Exception in thread "main" javax.xml.bind.Unmar
情景 我正在使用 JAXB 2.0,并且我有一个从需要解码的 Web 服务接收 xml 文件的进程。名称由网络服务提供,格式为: ESA08021701#99152015AA00024175#2015
我收到以下错误: javax.xml.bind.UnmarshalException: unexpected element(uri:"http://www.docsite.com/ClientCon
我们的生产环境面临问题。我们在网上到处搜索,但没有找到任何答案。当从受管服务器 1 到管理服务器 2 进行 ejb 查找时,会发生此错误(下面的堆栈跟踪)。查找时使用虚拟 IP。它间歇性地、随机地发生
我有一个 java rmi 服务器和一个 java rmi 客户端在两台独立且不同的机器。 服务器基本上是一个斐波那契计算器。它接收一堆数字并根据它们计算斐波那契数列。 客户端只需发送一堆数字供服务器
我会尽力使这篇文章尽可能小,以便根据要求添加更多信息和代码。 场景:我正在编写一个服务器/客户端应用程序来跟踪公司的一些流程,因此用户将创建小标签,这些标签将根据工作流程从一个用户的屏幕转到另一个用户
我遵循了几个关于运行 RMI 应用程序的教程。但是,我似乎无法让它工作,因为我一直卡在同一个异常上。 我目前只运行一个服务器,因此不涉及客户端通信。 我有一个简单的 RMI 程序,包括: 服务器类 S
本文整理了Java中org.eclipse.persistence.exceptions.XMLMarshalException.unmarshalException()方法的一些代码示例,展示了XM
尝试使用 jaxb 将 xml 响应转换为 java 对象时出现以下错误 javax.xml.bind.UnmarshalException: unexpected element (u
调用 Web 服务时,出现以下异常: [javax.xml.bind.UnmarshalException:意外元素(uri:“urn:partner.soap.sforce.com”,本地:“met
Closed. This question is not reproducible or was caused by typos。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-to
我使用以下代码通过 JAXB 解码 XML。 responseXML 包含从 Web 服务调用返回的 XML 字符串。 StringReader reader = new StringRead
我是一名优秀的程序员,十分优秀!