我是刚刚开始使用JAXB的人,所有我需要的是将对象写入xml并在某些时候将其读回

java

这是我的班级:

public class VSM implements java.io.Externalizable

{

ArrayList termList; //Term Dictionary

ArrayList queryTermList; //Query list

ArrayList> docLists;

ArrayList> queryDocLists;

double[] docLength; //Denominator for doc linearization

double queryLength; //Denominator for query lineriazation

HashMap queryDocLenght; //Vector for holding noramiliase queries

HashMap queryDoc;

String Docs[]; //List of file names

Double scoreCap=0.04; //Score cap to reduce the effect of stop words

public static String fileName = "indexedFiles.txt";

private static final long serialVersionUID = 7863262235394607247L;

public VSM()

{

//Some constructor code

}

}

这是我用来构造XML文件的方法

public void writeXML(VSM vsm)

{

try {

File file = new File("IndexXmlfile.xml");

//JAXBElement jaxbWrappedHeader = objectFactory.createHeader(obj);

JAXBContext jaxbContext = JAXBContext.newInstance(VSM.class);

Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

// output pretty printed

jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

jaxbMarshaller.marshal(new JAXBElement(new QName("uri","local"), VSM.class, vsm), System.out);

jaxbMarshaller.marshal(vsm, file);

jaxbMarshaller.marshal(vsm, System.out);

} catch (JAXBException e) {

e.printStackTrace();

}

}

Altough当我尝试运行代码时,我得到错误:

javax.xml.bind.MarshalException

- with linked exception:

[com.sun.istack.SAXException2: unable to marshal type "KPT.VSM" as an element because it is missing an @XmlRootElement annotation]

at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:326)

at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:251)

at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(Unknown Source)

at KPT.VSM.writeXML(VSM.java:477)

at KPT.VSM.main(VSM.java:511)

Caused by: com.sun.istack.SAXException2: unable to marshal type "KPT.VSM" as an element because it is missing an @XmlRootElement annotation

at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:249)

at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:339)

at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)

at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)

... 4 more

我完全不理解JABX及其所有方法,所以我很难理解这个错误,我尝试了一下谷歌搜索,发现很多人都得到了这个错误,但仍然觉得很难理解这里的问题. .

vsm java_java – 我尝试使用JAXB将对象编组到xml文件中时,错误为“缺少@XmlRootElement注释”...相关推荐

  1. Winform中实现序列化指定类型的对象到指定的Xml文件和从指定的Xml文件中反序列化指定类型的对象

    场景 在Winform程序中需要将某些页面的设置存储到配置文件中,下次再次打开时通过配置文件读取,点击确定时能将将设置保存到配置文件中. 之前介绍过 Winform中自定义xml配置文件后对节点进行读 ...

  2. mybatis在关联映射中,引入外部xml文件中定义的对象

    2019独角兽企业重金招聘Python工程师标准>>> association标签 在mybatis中,关联映射是通过association标签实现的. Lottery2Rule对象 ...

  3. 将json对象输出为xml文件

    一.pom中引入jdom依赖 <dependency><groupId>org.jdom</groupId><artifactId>jdom</a ...

  4. mysql存储登录密码_当密码存储在选项文件中时,MySQL拒绝登录尝试

    第一: >我们正在运行MySQL 5.7.13. >操作系统是Red Hat Enterprise Linux 7.2. >首先使用Python / Connector 2.1.3发 ...

  5. java xml 字符串转对象_java读取xml文件并转换成对象,并进行修改

    1.首先要写工具类,处理读取和写入xml文件使用的工具.XMLUtil.java import java.io.FileInputStream; import java.io.FileWriter; ...

  6. java序列化和反序列化对象_java中的序列化与反序列化,还包括将多个对象序列化到一个文件中...

    package Serialize; /** * Created by hu on 2015/11/7. */ //实现序列化必须实现的接口,这就是一个空接口,起到标识的作用 import java. ...

  7. 如何将Python对象保存在本地文件中?

    Python对象的永久存储 1.使用Python的pickle模块 import pickle class A:def __init__(self,name,a):self.name=nameself ...

  8. oxygen 生成java对象_利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析...

    首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...

  9. 如何运用JAXB定时读取解析xml文件?

    Background系统 一.背景 在许多开发需求中都解析xml文件的需求,对于规格复杂的xml文件,方法很多主要有JDK原生dom形式,SAX形式,DOM4J ,JAXB 4种方式,但是JAXB(J ...

最新文章

  1. WAIC | 云天励飞副总裁肖嵘:创「芯」时代 打造自进化城市智能体
  2. python程序设计梁勇 百度网盘_20194220 2019-2020-2 《Python程序设计》实验二报告
  3. 商丘网络推广是如何做好网站优化的关键词布局的呢?
  4. mybaits四-1:增删改查的实现
  5. 牛顿法 Newton Method
  6. Groovy简介和一点资源
  7. Angular js 具体应用(一)
  8. 5 华为兼容性 双指缩放_华为EMUI10“滚屏翻译”之背后的学问
  9. 『设计模式』开发设计的七大原则,我做人还是挺有原则,那些代码呢?
  10. php5.3 sql server,php5.3连接sqlserver2005
  11. sql azure 语法_Azure Kubernetes服务(AKS)–管理SQL Server数据库文件
  12. sqlite工作记录-1数据库数据写入-转
  13. 打算_20160604
  14. php跟python效率_python为何效率慢点?PHP跟Python的解释器都是C写的,PHP为什么能快点?...
  15. ubutu虚拟机和主机共享同一网络
  16. Lambda表达详细介绍、全的不能全了!!
  17. 人体反应测试仪 c语言,FD.12-FD-HRT-A
  18. 网络渗透测试实验二(网络扫描与网络侦察)
  19. C语言之算法的概念和特点
  20. 安装 python cuda

热门文章

  1. eclipse juno_放弃Eclipse Juno
  2. fork join框架使用_Java:使用Fork / Join框架的Mergesort
  3. spring social_Spring Social入门–第2部分
  4. JavaFX将会留下来!
  5. 通过NFS访问编年引擎
  6. heroku_简单的Twitter:Heroku上的Play框架,AJAX,CRUD
  7. Delta架构:统一Lambda架构并利用Hadoop / REST中的Storm
  8. 如何在Java Reflection中的类下获取所有方法信息?
  9. Spring MVC中的验证组
  10. 带有Gradle的Docker容器分为4个步骤