如何使用jaxb.index文件?

如何使用jaxb.index文件?,jaxb,Jaxb,我要走了 javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index 尝试使用JAXBContext.newInstance(字符串contextPath)创建JAXBContext时。我猜有一种“常用”的方法来创建和维护jaxb.index文件。确保将正确的类传递给该方法。假设您的XML根元素是XMLRoot,您可以将其称为: JAXBContex

我要走了

javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index

尝试使用
JAXBContext.newInstance(字符串contextPath)
创建
JAXBContext
时。我猜有一种“常用”的方法来创建和维护jaxb.index文件。

确保将正确的类传递给该方法。假设您的XML根元素是XMLRoot,您可以将其称为:

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);
还要确保您正在运行的Java版本使用了正确版本的JAXB编译器(xjc)。从旧编译器生成的JAXB类不能与Java 6的JAXB正常工作,会出现相同的错误。

试试这种方法

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});
而且, 确保已将
@XmlRootElement
添加到测试类中

@XmlRootElement
class Test {
  private String ...;
  private int ......;
}

还要确保您使用的是java 1.5,jaxb.index文件只是包含包中具有jaxb注释的类的列表

文件中的每一行都是一个类的简单名称,而不是它的完全限定名称


您可以在此处阅读更多内容:

@Andrew Coleson-您不想在其中输入Packagee名称,而不是根元素标记名称吗?分类是指完全限定的类名吗
Foo
将是类名,
com.a.b.c.Foo
将是完全限定的类名。