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注释”...的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: python抢货程序_写个Python程
 - 下一篇: linux zip命令安装(linux安