草庐IT

unmarshalling

全部标签

java - JAXB:解码异构数组

我正在尝试使用MOXy解码具有以下结构的json:[{"page":1,"pages":1},[{"indicator":{"id":"IC.BUS.EASE.XQ","value":"Easeofdoingbusinessindex"},"country":{"id":"1A","value":"ArabWorld"},"value":"113.952380952381","date":"2014"},...]]数组的第一个元素是一个对象,第二个元素是另一个复杂元素的数组。我真的在SO和MOXy文档中搜索了一个类似的例子,但没有成功。我将json文档映射到JAVA类的最佳尝试如下。根

java - JAXB:反序列化扩展类 A 的类 B 时出现问题

请考虑以下示例:有一个ClassA和一个扩展它的ClassB。我现在的问题是我必须从xml文件中解码ClassB。请注意ClassA无法更改,因为它不在我的控制之下。这个例子中有几个问题:主要问题是ClassA没有没有Adapter的JAXB所需的默认无参数构造函数。因此,我实现了MyAdapter,它将ClassB映射到简单的类ValB,JAXB可以毫无问题地对其进行处理。主要问题是如何让JAXB使用这个适配器?无论是在类级别上定义@XmlJavaTypeAdapter还是将适配器注册到解码器,都不会这样做。有人知道如何让JAXB使用MyAdapter以便解码器返回一个对象,该对象是

java - JAXB 使用 Java 泛型解码

我正在尝试使用JAXB从遗留系统中解码XML文档。我有一个xml结构如下:0000002003LoremIpsumI1I22007DolorsitametK1K2指定部分内的标签标签会根据我的要求改变。由于内容可能会改变,我决定对结果项使用泛型,并且我已经准备好带有注释的javabean,如下所示://importshere@XmlRootElement(name="response")@XmlAccessorType(XmlAccessType.FIELD)publicclassXResponse{privateStringid;@XmlElementWrapper(name="re

java - 如何使用 JAXB 编码/解码具有私有(private)字段的 Java 对象

我知道JAXBAPI的基础知识,但我对我正在尝试做的事情感到困惑,而且我不确定它是否真的可行。详情如下:我有一个名为Book的类,其中有2个public字符串类型的实例变量:@XmlRootElement(name="book")publicclassBook{publicStringtitle;publicStringauthor;publicBook(){}}我有另一个名为Bookshop的类,它有1个publicArrayList类型的实例变量:@XmlRootElement(name="bookshop")publicclassBookshop{@XmlElementWrapp

java - 如何使用 JAXB 编码/解码 MyBean 集合

我有一个MyBean注释@XmlRootElementpublicclassMyBean...编码/解码MyBean没有问题,例如JAXBContextjaxbCtx=JAXBContext.newInstance(MyBean.class);Marshallerm=jaxbCtx.createMarshaller();m.marshal(myBean,writer);如何使用JAXB编码/解码集合或列表?我的尝试导致了这个错误:javax.xml.bind.MarshalException-withlinkedexception:[com.sun.istack.internal.SA

java - 无法编码 java.lang.String

这是我的困境:我有一个dto类,用于从XML来回编码。诀窍是:由于我们的项目处理的dto类的数量是带有复数外部标记的集合,所以我决定创建一个委托(delegate)集合,它允许我使用其中一个类并毫不费力地将它们变成一个收集并获得随之而来的便利(迭代、添加等)。在我们的项目中,我们有编码测试来清除注释错误等。下面是我的故障代码。问题:根据编码器的不同,如果我扩展此QuickCollection,我会收到以下错误。当使用CXF作为对web服务请求的响应将对象解码为xml时,它会失败。确切错误:com.sun.istack.SAXException2:无法将类型“java.lang.Stri

java - 最新的 Open JDK 8 JAXB 库无法解码具有包含换行符的属性的对象

我在Ubuntu16.04上使用Java。最近我升级到使用oracle-java8-installer包安装的OpenJDKjava版本“1.8.0_161”(包版本8u161-1~webupd8~0)。自从进行此升级后,我在对Java对象进行JAXB编码时遇到了新的异常。具体来说,当尝试使用JAXB将Java对象编码为XML时,如果Java对象具有包含任何换行符(“\n”)字符的String属性并且该String属性被序列化为元素,我会得到以下异常XML中的内容。(顺便说一句,如果将String属性序列化为属性内容,则String值中的任何换行符都将转换为空格字符,并且不会触发异常。

java - 在解码期间从 ElementNSImpl 到自己的类型的间歇性 ClassCastException

我们遇到了一个极难追踪的问题,即在尝试遍历未编码的对象列表时有时会看到ClassCastExceptions。重要的一点是有时,在重新启动后特定代码可以正常工作。这似乎指向并发/时序/竞争条件的方向。我可以确认既没有同时使用JAXBContext,也没有编码器和解码器。我们已经通过锁定序列化对它们的访问。但是,由于我们在OSGi平台上运行,其中各个bundle通过SpringDM异步初始化,因此可能有2个不同的bundle同时创建它们的JAXBContext。在任何情况下,对于可能导致这些间歇性ClassCastExceptions的原因的解释,我将不胜感激。间歇性很重要,因为它们表明

java - Axis 编码器

我有一组使用wsdl2java(Axis1.4)创建的类,我正在寻找一种方法来解码和编码来自/到字符串和对象的数据。我已经编写了一个JAXB解码器,它适用于我们的一些较新的内部对象,因为我们使用xjc创建类但没有时间转换旧的Axis类并且需要按原样找到代码的编码/解码解决方案.谁能给我指明方向。谢谢! 最佳答案 我确实找到了我自己的问题的答案,所以认为值得发布。找到一个概述Axis流程的不错链接:http://bwithers.wordpress.com/2006/07/29/serializing-an-axis-javabean

java - 获取 java.rmi.UnmarshalException : unrecognized method hash: method not supported by remote object

我是RMI技术的新手。当我运行rmi客户端程序时,出现异常:java.rmi.UnmarshalException:unrecognizedmethodhash:methodnotsupportedbyremoteobject。我用的是jdk1.5远程方法的参数是序列化对象。这些是服务器代码...这是远程接口(interface)packageinterfacepackage;importjava.rmi.Remote;importjava.rmi.RemoteException;publicinterfaceServerInterfaceextendsRemote{publicvoi