草庐IT

java - 具有相同名称的 Jaxb 对象

似乎可以解码具有相同名称的两个不同jaxb对象。有一个Bar类...publicabstractBar{private@XmlElementStringval;}..有两个实现(省略了构造函数等):@XmlRootElement(name="bar")publicclassBarAextendsBar{}@XmlRootElement(name="bar")publicclassBarBextendsBar{private@XmlElement(required=true)Stringtype;}最后,我想从类似于以下的XML中解码Bar文档列表112列表包装在一个使用@XmlAnyE

java - JAX-WS 在生成 wsdl 时复制复杂类型

我正在开发一个Web服务,其中包含多种方法,将相同的复杂数据类型作为输入。数据类型有JAXB注释和setter和getter,Web服务类有JAX-WS注释。我的service.java文件的模板:@WebService(serviceName="ServiceWS")publicclassSericeWS{privatestaticServiceIFserviceImpl;static{serviceImpl=newServiceImpl();}publicResultMethod1(Credentialscredentials){@WebParam(name="credential

java - xs :integer to Java Integer instead of BigInteger 的 JAXB 绑定(bind)

应避免以下讨论。这个问题不是:使用xs:int代替xs:integer。使用原始int而不是Integer。你为什么需要这个。如果等等,你会怎么做问题:我想要一个jaxb绑定(bind)声明的示例来覆盖xs:integer到JavaBigInteger的默认映射,以便xjc生成JavaInteger。例如应该产生@XmlAttribute(name="id")Integerid;不是@XmlAttribute(name="id")BigIntegerid; 最佳答案 您可以将以下内容添加到您的绑定(bind)文件中:这将产生,例如:

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 - 如何将单个 java bean 编码到具有现有注释的复杂 XML 文档中?

我有一个已为JPA注释的javabean,我也希望将其存储为XML,特别是FIXML.目标是使用注释管理从bean到XML的映射。我在网上看到有关指定模式和让JAXB生成类的相关主题,但我不想那样做。我一直在考虑使用JAXB注释,但似乎我需要为每个子元素创建新的类。我试图远离它,让注释显示如何构造子元素。JAXB似乎不想这样做。这可能吗?如何实现?我是否需要制作自己的注释而忘记JAXB?具体例子bean类:@Entity@XmlRootElement(name="FIXML")@XmlType(name="ExecRpt")publicclassExecutionReportimple

java - HashMap 的 XMLAdapter

我想转换我的payaload中的项目列表,并将它们转换为HashMap。基本上,我拥有的是一个Itemxml表示,其中包含一个ItemID列表。每个ItemID中都有一个idType。但是,在我的Item类中,我希望将这些ItemID表示为一个Map。HashMap传入的有效负载将把它表示为一个列表...但我想要一个将其转换为HashMap的适配器"external"=>"xyz""internal"=>"20011"我现在正在使用LinkedListpublicclassMapHashMapListAdapterextendsXmlAdapter,Map>{publicLinkedL

java - JAXB 解码忽略 SOAP 信封/ header 标记

我有一个正在构建的客户端,用于访问Web服务。我正在使用一些JAXB生成的类(Netbeans6.9)来解码我的xml数据。尝试从该Web服务解码InputStream响应时,我遇到了意外的元素错误,如果我将响应保存到文件,我也会遇到同样的意外元素错误。javax.xml.bind.UnmarshalException:unexpectedelement(uri:"http://www.w3.org/2003/05/soap-envelope",local:"Envelope").Expectedelementsare,....将数据保存到文件后,我可以进入并删除SOAP标记(信封、正

java - 将对象转换为 JAXBElement

我想实现一个返回JAXBElement的方法,下面是代码@XmlRootElement(name="history")@XmlAccessorType(XmlAccessType.FIELD)publicclassIBHistoryInfo{@XmlElement(name="trade")privateListmTrade;publicvoidupdateTradeValue(intreqId,Stringdate,doubleopen,doublehigh,doublelow,doubleclose,intvolume,intcount,doubleWAP,booleanhasGa

java - 如何避免编码元素/标签中不必要的 namespace 声明?

我有一个XSD,它不是自己创建的,而是从另一方收到的。所以我无法更改此XSD,因为我必须确保与对方的兼容性。使用简单绑定(bind)模式的XJC2.2和JAXB2.2我想创建一个根元素,里面有一个空的hello元素。但是当编码时,我得到了很多额外的命名空间废话。对我来说这看起来是不必要的。(虽然它可以工作,但它需要发送更多数据等...)XSD根元素:Java代码:Eppepp=newEpp();epp.setHello("");编码结果:首选结果:或者:有什么方法可以做到这一点,最好是不更改XSD或手动更改XJC编译类? 最佳答案