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

loo*_*nut 26 jaxb

我越来越

javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index
Run Code Online (Sandbox Code Playgroud)

在尝试创建JAXBContext使用时JAXBContext.newInstance(String contextPath).我猜测有一种"通常"的方式来创建和维护jaxb.in​​dex文件.

小智 36

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

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

你可以在这里阅读更多内容:http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html


小智 15

试试这个,

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});
Run Code Online (Sandbox Code Playgroud)

另外,请确保已将其添加@XmlRootElement到Test类.

@XmlRootElement
class Test {
  private String ...;
  private int ......;
}
Run Code Online (Sandbox Code Playgroud)

还要确保您使用的是java 1.5


And*_*son 4

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

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);
Run Code Online (Sandbox Code Playgroud)

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