Tag: jaxb

在Apache Felix中运行时,为什么JAXB无法find我的jaxb.in​​dex?

它就在那里,它应该是索引的包。 不过,当我打电话 JAXBContext jc = JAXBContext.newInstance("my.package.name"); 我得到一个JAXBException说 “my.package.name”不包含ObjectFactory.class或jaxb.in​​dex 虽然它确实包含两者。 什么工作,但不是我想要的,是 JAXBContext jc = JAXBContext.newInstance(my.package.name.SomeClass.class); 来自其他人的这个问题出现在相当多的邮件列表和论坛上,但似乎没有得到答案。 我在OpenJDK 6上运行这个,所以我得到了源码包,并将我的debugging器join到库中。 它首先查找jaxb.properties,然后查找系统属性并找不到,它尝试使用com.sun.internal.xml.bind.v2.ContextFactory创build默认上下文。 在那里,exception被抛出(在ContextFactor.createContext(String ClassLoader, Map) ),但我不明白是怎么回事,因为源不在这里。 ETA : 从ContentFactory的源代码来看,我在这里发现,这可能是一段代码无法正常工作: /** * Look for jaxb.index file in the specified package and load it's contents * * @param pkg package name to search in * @param classLoader ClassLoader to search in […]

有没有办法来避免Tomcat的解除部署内存泄漏?

这个问题对于任何曾经testing过Tomcatpipe理器中的“Find leaks”button的人来说都是这样的: 以下Web应用程序已停止(重新加载,取消部署),但其以前运行的类仍然加载到内存中,从而导致内存泄漏(使用分析器进行确认): /漏的应用程序名称 我认为这与您经常重新部署时经常遇到的“Perm Gen空间”错误有关。 所以当我部署的时候我在jconsole中看到的是我的加载类从大约2k到5k。 那么你会认为一个部署会让他们回到2K,但他们仍然在5K。 我也试过使用下面的JVM选项: -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled 我看到使用Perm Gen空间的次数非常less,但不是我所期望的,而且加载的类数没有下降。 那么有没有一种方法来configurationTomcat或devise你的应用程序卸载更好地卸载? 还是我们坚持重新启动服务器后,一些主要的debugging会议? Tomcat版本输出: 服务器版本:Apache Tomcat / 6.0.29 build立的服务器:2010年7月19日1458 服务器号码:6.0.0.29 操作系统名称:Windows 7 操作系统版本:6.1 架构:x86 JVM版本:1.6.0_18-b07 JVM供应商:Sun Microsystems Inc. 更新: 感谢celias的回答,我决定做更多的挖掘工作,我想我已经确定了罪魁祸首是由于CXF,Spring和JAXB。 在学习了如何configurationJava应用程序之后,我将分析器指向了Tomcat,并采取了一些堆转储和快照来查看内存中对象和类的内容。 我发现在我的CXF / JAXB(wsdl2java)生成的类中使用的XML模式中的一些枚举在部署之后仍然存在。 根据我的堆转储它看起来像对象被绑定到一个地图。 免责声明:我承认我仍然有点绿色与分析和追踪对象的调用树可以在Java中具有挑战性。 另外我应该提到,我甚至没有调用服务,只是部署,然后取消部署。 这些对象本身似乎是通过部署时从Spring发起的reflection来加载的。 我相信我遵循了在春季build立CXF服务的惯例。 所以我不是100%确定这是Spring / CXF,JAXB还是reflection的错误。 作为一个方面的说明:有问题的应用程序是使用Spring / CXF的Web服务,而XML恰好是一个相当复杂的模式( NIEM的扩展)。

JAXB和物业订购

我想从我的Java类的序列化XML输出,以遵守Java类中的属性的顺序。 看来,JAXB按字母顺序排列。 我可以通过使用@XmlType与propOrder并指定所有的属性,但我有一个类与许多属性,这些还没有最终确定。 我读到,指定一个空propOrder会做到这一点,但事实并非如此。 我的例子类: package test; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement //@XmlType(propOrder={"company", "scheme", "agreementNumber"}) @XmlType(propOrder={}) // makes no difference – still alphabetical in XML public class CustomerPlan2 { private String company; private String scheme; private String agreementNumber; @XmlElement(name="Company") public String getCompany() { return company; } public void setCompany(String company) { this.company = […]

JAXB:如何将marshall映射到<key>值</ key>

问题是关于JAXB Map marshalling – 有很多关于如何将Map映射成如下结构的例子: <map> <entry> <key> KEY </key> <value> VALUE </value> </entry> <entry> <key> KEY2 </key> <value> VALUE2 </value> </entry> <entry> … </map> 实际上,这是由JAXB本地支持的。 但是,我需要的是XML,其中键是元素名称,值是其内容: <map> <key> VALUE </key> <key2> VALUE2 </key2> … </map> 我没有成功实现我的地图适配器JAXB开发人员推荐的方式( https://jaxb.dev.java.net/guide/Mapping_your_favorite_class.html ),因为我需要,他 – dynamic属性名称:) 有没有解决scheme? PS目前我必须为每个典型的键值对创build一个专用的容器类,我想编组到XML – 它的工作原理,但我必须创造太多的这些辅助容器的方式。

jaxb unmarshal时间戳

我无法让JAXB在Resteasy JAX-RS服务器应用程序中解组时间戳。 我的课堂看起来像这样: @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = "foo") public final class Foo { // Other fields omitted @XmlElement(name = "timestamp", required = true) protected Date timestamp; public Foo() {} public Date getTimestamp() { return timestamp; } public String getTimestampAsString() { return (timestamp != null) ? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp) : null; } public void setTimestamp(final Date timestamp) […]

javax.xml.bind.UnmarshalException:意外的元素(uri:“”,local:“Group”)

unexpected element (uri:"", local:"Group"). Expected elements are <{}group> 在从xml解组时遇到exception JAXBContext jc = JAXBContext.newInstance(Group.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); Group group = (User)unmarshaller.unmarshal(new File("group.xml")); Group类没有任何注释,group.xml只包含数据。 任何事情都可能是原因?

具有使用JAXB的属性和内容的XML元素

如何使用JAXB生成以下XML? <sport type="" gender=""> sport description </sport>

JAXB创build上下文和marshallers成本

这个问题有点理论上,创buildJAXB上下文,编组和解组器的成本是多less? 我发现我的代码可以受益于保持相同的JAXB上下文和可能相同的编组,而不是在每个编组上创build上下文和编组。 那么创buildJAXB上下文和编组/解组器的成本是多less? 可以为每个编组操作创build上下文+编组,还是最好避免它?

JAXB – 从生成的XML中移除standalone =“yes”

你知道一个JAXB设置来防止在生成的XML中生成standalone =“yes”吗? <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Jaxb,Class有两个同名的属性

与jaxb,我尝试读取一个XML文件只有在XML文件中的几个元素是有趣的,所以我想跳过很多元素 XML内容 XML我尝试阅读 <?xml version="1.0" encoding="UTF-8"?> <!–Sample XML file generated by XMLSpy v2010 rel. 3 sp1 (http://www.altova.com)–> <flx:ModeleREP xsi:schemaLocation="urn:test:mod_rep.xsd mod_rep.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:flx="urn:test:mod_rep.xsd"> <flx:DocumentHeader> <flx:Identification v="04489"/> </flx:DocumentHeader> <flx:TimeSeries> <flx:Identification v="test1a"/> <flx:BusinessType v="A01"/> <flx:Product v="123a"/> <flx:ResourceObject codingScheme="N" v="testa"/> <flx:Period> <flx:TimeInterval v="2011-07-02T00:00/2011-07-16T00:00"/> <flx:Resolution v="PT2H"/> <flx:Pt> <flx:P v="1"/> <flx:Q unitCode="String" v="1.0"/> <flx:A currencyIdentifier="String" v="195.0"/> </flx:Pt> </flx:Period> </flx:TimeSeries> <flx:TimeSeries> <flx:Identification […]