Tutorial :How do I use a jaxb.index file?



Question:

I'm getting

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

while trying to create a JAXBContext using JAXBContext.newInstance(String contextPath). I'm guessing there's a "usual" way to create and maintain a jaxb.index file.


Solution:1

The jaxb.index file is just a listing of the classes in the containing package that have JAXB annotations.

Each line in the file is a class's simple name, not its fully qualified name.

You can read more here: http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html


Solution:2

Try this way,

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

Also, make sure that you added the @XmlRootElement to the Test class.

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

also make sure that you are using java 1.5


Solution:3

Make sure you're passing the correct class to the method. Assuming your XML root element is XMLRoot, you would call it as:

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

Also make sure that you're using the correct version of the JAXB compiler (xjc) for the version of Java you're running. JAXB-generated classes from the old compiler won't work properly with Java 6's JAXB, giving the same error.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »