J'ai une classe de domaine de rôle, que j'ai simplifié pour illustrer le cas ici:marshalling JAXB ne retournera pas certaines valeurs pour ces domaines objets
@XmlRootElement(name="Role")
@XmlAccessorType(XmlAccessType.NONE)
public class Role implements Comparable
{
@XmlElement
String title = ""
}
J'ai un code pour tester marshalling cette classe de domaine qui est :
try {
employee.getProjects().each{ proj ->
println "Project name :" + proj.name
proj.getRoles().each{
println ("Role title:" + it.title)
context = JAXBContext.newInstance(Role.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal ((Role)it, System.out)
}
}
}catch (JAXBException e){
e.printStackTrace();
println(e.getCause())
println ("Ever getting here?")
}
Comme vous pouvez le voir, j'ai d'autres classes où cela vient, les employés des projets hasMany, rôles hasMany du projet
quand je lance cette méthode, je reçois t il suit:
Project name :Project 1
Role title:Software Engineer1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
<title></title>
</Role>
Project name :Project 2
Role title:Software Engineer2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
<title></title>
</Role>
Project name :Project 3
Role title:Software Engineer3
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Role>
<title>Software Engineer3</title>
</Role>
Que se passe-t-il ici? Cela me rend fou qu'il sait clairement être le titre de marshalling, et les valeurs sont là - je peux les IMPRIMER mais ils ne sont pas apparents avec le XML