unmarshal parse jaxbunmarshaller example convert java jaxb unmarshalling

java - parse - 3 conteos de Excepciones de Anotación Ilegales



string unmarshal jaxb (1)

Las Excepciones de Anotación Ilegales se deben a que usted no tiene constructores por defecto de cero arg en A, B y C.

Agregar a A:

public A() { }

Agregar a B:

public B() { }

Y agrega a C:

public C() { }

Nunca antes había usado JAXB. Estoy trabajando en un proyecto de prueba de arneses. Tengo alrededor de 20 testcases diferentes. Cuando realizo mi prueba, obtengo este error.

Mi estructura es como:

A es la clase base TestCase.

B extiende A

C extiende B

Clase base A:

public class A { public A(String t){ testName = t; } private String aData; private String testName; public void setAData(String a){ aData = a; } public void getAData(){ return aData; } public void setTestName(String t){ testName = t; } public void getTestName(){ return testName; } }

Clase B:

public class B extends A{ public B(String testName){ super(testName); } private String bData; public void setBData(String b){ bData = b.trim(); } public String getData(){ return bData; } }

Clase C:

@XmlRootElement(name="C") public class C extends B{ public C(String testName){ super(testName); } private String cData; public void setCData(String c){ cData = c; } public String getCData(){ return cData; } }

y para desmantelar mis archivos xml escribí

public C unmarshall(C test, String dir){ try { JAXBContext jc = JAXBContext.newInstance(c.getClass); Unmarshaller u = jc.createUnmarshaller(); test = (C)u.unmarshal(new FileInputStream(dir)); } catch (Exception e) { System.out.println(e.getMessage()); } return test; }

mi archivo xml se ve así:

<C> <aData> aaaa </aData> <bData> bbbb </bData> <cData> cccc </cData> </C>

cuando ejecuto mi código recibo 3 conteos de IllegalAnnotationException.