JAXB Object (not strongly typed) within class creating MarshalException
I have a colleague that is trying to get JAXB to create XML and then create=
the class back again where one of the member variables will just be an Obj=
ect. That is, it will not be strongly typed and it will contain a myriad o=
f different types depending on what the XML coming in contains. However, a=
simple example results in a MarshalException with linked exception: JAXBEx=
ception: class (any class here) nor any of its super class is known to this=
context. How can this be solved? An example of what is being tried is be=
low. Thank you for your help!
<code>
package com.hp.asi.ui.hpicsm.rmi.impl;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
public class testExample {
public static void main(String[] args) {
testExample ex = new testExample();
ex.doIt();
}
public void doIt() {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(testXML.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter writer = new StringWriter();
Set<String> y = new HashSet<String>();
y.add("hello");
y.add("world");
testXML x = new testXML(y);
jaxbMarshaller.marshal(x, writer);
System.out.println(writer.getBuffer().toString());
} catch (Exception e) {
System.out.println(e);
}
}
@XmlRootElement
public static class testXML {
@XmlElement
private Object testVal;
public testXML(){
}
public testXML(Object y) {
this.testVal = y;
}
}
}
</code>