Warum funktioniert Beispiel A, während Beispiel B eine Ausnahme "JAXB-Annotation wird auf eine Methode platziert, die keine JAXB-Eigenschaft" ist?Warum erlaubt JAXB keine Annotationen für Getter, die alle von derselben Member-Variable ziehen?
Ich benutze JAX-WS mit Spring MVC.
Beispiel A
package com.casanosa2.permissions;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper implements IFoo {
@XmlElement
private final boolean propA;
@XmlElement
private final boolean propB;
public FooMapper(IFoo foo) {
propA = foo.getPropA()
propB = foo.getPropB()
}
public FooMapper() {
propA = false;
propB = false;
}
@Override
public boolean getPropA() {
return propA;
}
@Override
public boolean getPropB() {
return propB;
}
}
Beispiel B
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper {
private final IFoo foo;
public FooMapper() {
foo = new IFoo() {
@Override
public boolean getPropA() {
return false;
}
@Override
public boolean getPropB() {
return false;
}
};
}
public FooXMLMapper(IFoo foo) {
this.foo = foo;
}
@XmlElement
public boolean getPropA() {
return foo.getPropA();
}
@XmlElement
public boolean getPropB() {
return foo.getPropB();
}
}
Bernard verwendet Eigenschaft als Zugriffstyp, daher sollte nur die get/set-Methode überprüft werden. –
Sie hatten Recht, das Hinzufügen von XmlAccessType.NONE wurde behoben. Jetzt brauche ich keine dummen Membervariablen, die Daten duplizieren, die ich bereits habe. :) –
XmlAccessType.NONE wird funktionieren, aber es ist nicht korrekt. NONE bedeutet, nur das zu zeichnen, was explizit mit Anmerkungen versehen ist. Wenn Sie FIELD oder PROPERTY verwenden, können Sie die Standardwerte nutzen. Ich glaube immer noch, dass Ihr Problem darin besteht, den Zugriff auf PROPERTY zu spezifizieren, aber Felder mit Anmerkungen zu versehen. –