问题标签 [unmarshalling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在解组期间从 ElementNSImpl 到自己的类型的间歇性 ClassCastException
我们遇到了一个非常难以追踪的问题,我们有时会在尝试遍历未编组的对象列表时看到 ClassCastExceptions。重要的是有时,重新启动后特定代码可以正常工作。这似乎指向并发/计时/竞争条件的方向。我可以确认 JAXBContext 以及编组器和解组器都没有同时使用。我们已经通过锁定序列化对它们的访问。
但是,由于我们在 OSGi 平台上运行,其中各个包通过 Spring DM 异步初始化,因此可能有 2 个不同的包同时创建它们的 JAXBContext。
在任何情况下,我都会感谢任何指向解释可能导致这些间歇性ClassCastExceptions 的原因。间歇性很重要,因为它们表明代码本身正常工作,但某些外部因素似乎会影响行为。
这是异常的一个具体示例(注意我删除了公司特定的东西):
第 180 行的方法是一个 for() 构造,循环遍历未编组对象内部的 TunnelType 对象集合(顺便说一句,解组工作正常)。
鉴于实际的对象解组很顺利,JAXB 是否甚至可以在物理上将 ElementNSImpl 对象留在嵌套集合中?
运行环境:
- JAXB 2.1
- 操作系统
- 弹簧DM
- JAXBContext 使用包含要编组/解组的类的包的 ClassLoader 进行初始化
java - 当命名空间在操作标签内定义时,如何处理 SOAP 消息的 Castor 解组?
我正在开发基于 Spring-WS 的合同优先 Web 服务。我依赖于 Castor 编组,我遇到了以下问题。
当在 Envelope 标记中定义“xmlns”命名空间时,请求被接受,例如:
但是,从 Spring-WS 提供的 .wsdl(从 XSD 生成)生成的 .NET 和 Java 客户端都以下列方式形成它们的请求:
这会导致 Castor 抛出 Unmarshalling Exception。如何让 Castor 将这些消息识别为有效?我的 WSDL(或我用来自动生成它的 XSD)可能是错误的吗?
ruby - wsdl2ruby SOAP::FaultError 详细属性中的解组异常
我使用 wsdl2ruby 为 Web 服务生成客户端。当服务方法引发 WSDL 中定义的异常之一时,我想访问异常对象的属性。据我所知,异常对象已编组到 SOAP::Mapping::Object 中,该对象由可用于 RESCUE 块的 SOAP::FaultError 对象的 detail 属性引用。
尽管 SOAP::Mapping::Object 响应 marshal_load 方法,但该方法采用一个参数 dumpobj,这使我认为我应该提供该对象作为方法的参数,而不是将该对象用作方法的接收者。
谁能指出我解组异常对象的正确方法的示例?
json - Grails 日期解组
如果我从 RESTful 客户端获取以下 json,我如何优雅地解组 java.util.Date?(是否可以不提供(又名硬编码)格式,这就是我所说的优雅......)
jaxb - 在将 XML 文件解组为对象后,如何让 JAXB 调用方法?
我正在使用 JAXB 将 XML 文件解组为 Java 对象——标准的东西。一旦 JAXB 完成此操作,我希望在新创建的对象上调用一个方法。
有没有一种机制可以做到这一点?我更喜欢对象,而不是外部实体,这样做是为了将构造保持在一个地方。
谢谢。
java - 在 JaxB 中解组集合
假设我有这个类:
当尝试使用 JaxB 将 xml 文档解组到此类时,我注意到 JaxB 并没有调用 setB() 方法并向我发送 B 实例列表,而是实际上调用了 getB() 并将 B 实例添加到返回的列表中。为什么?
我希望调用 setter 的原因是该列表实际上只是一个临时存储,我想从中构建 map 字段,所以我想在 setter 中进行。
谢谢。
xml - 在restlet的acceptRepresentation方法中使用JAXB解组XML
我通过注释现有的 Java 域模型类创建了一个 XML 模式,现在当我尝试使用 JAXB 来解组在我的 restlet Web 服务中收到的表示时,无论我尝试什么,我都会遇到很多错误。我对restlets和JAXB都是新手,所以向我指出一个使用两者的体面示例的方向会很有帮助,只有我迄今为止设法找到的一个是:示例
我的错误是:
如果我尝试使用 restlet.ext.jaxb JaxbRepresentation:
从这里我得到一个
java.io.IOException: Unable to unmarshal the XML representation.Unable to locate unmarshaller.
例外jaxbRep.getObject()
因此,我还尝试了另一种方法来查看是否有所不同,而是使用以下代码:
但是,当调用 JAXBContext.newInstance 时,这也会给我以下异常。
提前感谢您的任何建议。
java - weblogic上下文查找错误:java.rmi.UnmarshalException:错误解组参数
我们在生产环境中面临一个问题。我们已经在网上搜索了高低,我们无法找到任何答案。当从托管服务器 1 到管理器服务器 2 进行 ejb 查找时,会发生此错误(下面的堆栈跟踪)。虚拟 ip 用于查找。它间歇性地和随机地发生。我们无法识别任何模式,如果 ejb 调用尝试了两三次,它就会成功通过。
环境详细信息:服务器:在 java 1.5 操作系统上运行的 weblogic 10.0 MP1:solaris
如果需要任何其他详细信息,请回复。
用于查找的源:
该 url 是一个指向托管服务器 2 的虚拟 ip,它包含一个带有 jndi“控制”的 ejb。问题是它在某些情况下成功并且随机失败并出现错误:
错误的堆栈跟踪:
从 weblogic 日志中获得了下面提到的堆栈跟踪。这个错误可能与我们上面提到的问题有关吗?
任何帮助将不胜感激。
这是一些附加信息..
问题是间歇性的,还是每次都会重现?如果问题是间歇性的,你知道它发生在什么条件下吗? 它间歇性地发生,我们无法观察到任何模式。
本地服务器或远程服务器上是否记录了任何其他错误/警告? 我们在 weblogic 日志中看到很多连接被拒绝的错误
两个托管服务器是否在同一个域中? 是的
java - 合适的 XML Marshaller 和 Unmarshaller
我们有一个需要转换为对象的 XML,反之亦然。像 Xstream 这样的东西。到目前为止,我们一直在使用 Xstream 来编组和解组对象/xml。但是问题是xstream中对应XML的对象,需要将所有的标签作为属性;否则,如果 XML 包含对象中不存在的任何额外标签;它炸弹。
或者,我们需要编写自定义转换器以确保操作按预期进行。还建议我使用 common digester 允许将 Xpath 从 XML 解析为对象。
我想知道最好的方法是什么;只要:
- 我只想将 XML 转换为 Object,反之亦然。
- 能够默默地忽略 XML 中映射对象中不存在的任何字段。
你有什么建议?
java - JAXB 解组富吧
问候!我有一个服务器将 XML 内容返回给我的客户端,如下所示:
我是 JAXB 的新手,并且已经完成了很多工作,除了这个。我认为在字符串之间编组和解组它会很容易。花了一段时间,但我终于想出了如何将其编组为
所以我的问题是,我如何解组这个?它不能被注释为根元素。我不能使用 java.lang 作为包来创建 JAXBContext 的新实例(我得到一个 ObjectFactory 缺失异常)。
有什么智慧可以传授吗?这不可能那么难,对吧?