我如何使用jaxb.in​​dex文件?

时间:2009-05-22 19:49:19

标签: jaxb

我正在

javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index
尝试使用JAXBContext创建JAXBContext.newInstance(String contextPath)

。我猜测有一种“通常”的方式来创建和维护一个jaxb.in​​dex文件。

3 个答案:

答案 0 :(得分:36)

jaxb.in​​dex文件只是包含JAXB注释的包中的类列表。

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

您可以在此处阅读更多内容:http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html

答案 1 :(得分:15)

试试这种方式,

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});

另外, 确保将@XmlRootElement添加到Test类。

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

还要确保您使用的是java 1.5

答案 2 :(得分:4)

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

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);

还要确保您正在使用正确版本的JAXB编译器(xjc)来运行您正在运行的Java版本。来自旧编译器的JAXB生成的类将无法与Java 6的JAXB一起正常运行,从而产生相同的错误。