草庐IT

java - 使用 JaxB 编码实现公共(public)接口(interface)的对象列表

我正在尝试编码实现公共(public)接口(interface)的对象列表。涉及3个类和1个接口(interface):Community类(有一个方法:ListgetPeople();)Person接口(interface)(只有一种方法:StringgetName();)Girl类(实现Person)Boy类(实现Person)参见下面的代码。我想要一个看起来像这样的XML:JaneJohnJaneJohn或者可能:JaneJohn到目前为止,我得到的是这样的:JaneJohnJaneJohn我意识到我可以将元素更改为其他内容,但我希望元素名称是在Girl或Boy类中指定的名称。这

java - JAXB 异常 : Class not known to this context

当我调用使用CXF构建的特定RESTful服务方法时,我收到以下错误,有人知道为什么以及如何解决它吗?JAXBExceptionoccurred:classcom.octory.ws.dto.ProfileDtonoranyofitssuperclassisknowntothiscontext...以下是服务方法和相关的DTO:publicclassService{publicResponseresults(){CollectionprofilesDto=newArrayList();...SearchResultDtosrd=newSearchResultDto();srd.setR

java - 如何使用 JAXB 序列化和反序列化对象?

我有一个问题。我想使用JAXB将一个对象转换为另一个对象。如,我有一个类com.home.Student和另一个类com.school.Student,两者都有相同的参数,实际上两者都是相同的(复制粘贴),但不同的包装。我想使用JAXB执行它们之间的转换。如何做到这一点,请帮助我。 最佳答案 如果您包含一些解释您的问题的代码,那就太好了。JAXB101说你应该放置正确的注解,然后你才能正确地序列化和反序列化。你应该用@XmlRootElement正确地注释你的类。,@XmlElement,@XmlAttribute等例如:@XmlR

java - 如何使用 JAXB 在 Java 中解析这个 XML?

我有以下XML,没有XSD或模式,我想使用JAXB解析为java对象,因为我听说它比SAX更好。有没有办法通过注释或更好的方法来实现这一点?它是否使我只需要一个FosterHome类(class)?我无法找到如何做到这一点,任何帮助都非常感谢。我最初想开设FosterHome、Family和Child类(class)。使用JAXB,是否不再需要3个类?由于ChildID出现在两个不同的区域,我不确定如何处理。HappyDaysDaycareAppleStreetAdamsChild1Child2AdamsChild3Child4Child5Child6 最佳

java - 为什么 JAXB 需要一个无参数构造函数来编码?

如果您尝试编码一个引用了没有无参数构造函数的复杂类型的类,例如:importjava.sql.Date;@XmlRootElement(name="Foo")@XmlAccessorType(XmlAccessType.FIELD)publicclassFoo{inti;Dated;//java.sql.Datedoesnothaveano-argconstructor}使用作为Java一部分的JAXB实现,如下所示:Foofoo=newFoo();JAXBContextjc=JAXBContext.newInstance(Foo.class);ByteArrayOutputStrea

java - 是否可以从带有 JAXB 注释的类生成 XSD?

我已经编写了许多使用JAXB进行序列化的类,我想知道是否有一种方法可以根据注释为每个对象生成XSD文件。有这个工具吗?像generate-xsdcom/my/package/model/Unit.java这样的东西会是awesome。有什么可以做到这一点吗? 最佳答案 是的,您可以在JAXBContext上使用generateSchema方法:JAXBContextjaxbContext=JAXBContext.newInstance(Customer.class);SchemaOutputResolversor=newMySche

java - 如何使用 JAXB 从 xsd 生成实现 Serializable 接口(interface)的 Java 类?

我想在一个现有的Spring项目中引入缓存,该项目使用JAXB来公开WebServices。缓存将在端点级别完成。为了做到这一点,使用JAXB从XSD生成的类需要实现Serializable接口(interface)并覆盖Object的toString()方法。如何使用XSD指示xjc工具生成具有所需属性的源代码? 最佳答案 可序列化在自定义绑定(bind)文件中使用xjc:serializable将java.io.Serializable接口(interface)与serialVersionUID一起添加到您的类中:toStrin

java - 带有空字段的 JAXB 编码

这是一个非常简单的请求,但我只是没有找到方法。我基本上是在尝试在JAXB中设置一个角色,即每当遇到空字段时,而不是在输出中忽略它,而是将其设置为空值。所以对于类(class):@XMLRootElementClassFoo{Integernum;Datedate;….}如果日期字段为空,则将其编码到XML文件中时,我的输出中没有该元素。我想要做的是在输出中包含所有字段;如果它们为空,请将它们替换为-比如说一个空白。所以输出应该是:123谢谢,贾尔佩什。 最佳答案 谢谢大家的回答。ChrisDail-我尝试了你的方法,但它并没有真正达

java - 如何在不编码的情况下验证 JAXB 2.0 中的模式?

我需要在编码到XML文件之前验证我的JAXB对象。在JAXB2.0之前,可以使用javax.xml.bind.Validator。但这已被弃用,所以我试图找出正确的方法。我熟悉在编码(marshal)时间进行验证,但就我而言,我只想知道它是否有效。我想我可以编码到一个临时文件或内存并将其丢弃,但想知道是否有更优雅的解决方案。 最佳答案 首先,javax.xml.bind.Validator已被弃用,取而代之的是javax.xml.validation.Schema(javadoc)。这个想法是您通过javax.xml.validat

java - 为什么在 Apache Felix 中运行时 JAXB 找不到我的 jaxb.in​​dex?

它就在那里,在它应该被索引的包中。不过,当我打电话时JAXBContextjc=JAXBContext.newInstance("my.package.name");我收到一个JAXBException说明"my.package.name"doesntcontainObjectFactory.classorjaxb.index虽然它确实包含两者。什么有效,但不是我想要的,是JAXBContextjc=JAXBContext.newInstance(my.package.name.SomeClass.class);这个来自其他人的问题出现在相当多的邮件列表和论坛上,但似乎没有得到答案。我