日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/2 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vsm java_java – 我尝试使用JAXB将对象编组到xml文件中时,错误为“缺少@XmlRootElement注释”... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我是剛剛開始使用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注释”...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。