Hallo Zusammen,
Ich habe Folgendes Problem: Ich möchte mittels JAXB verschiedene Modelklassen serialisieren bzw. deserialisieren. Darunter befindet sich allerdings eine Klasse File mit einem Attribute path vom Typ java.nio.file.Path, was zu folgendem Fehler führt:
#
Ich hab mittlerweile rausbekommen das ich ein eigenen XmlAdapter scheiben und diesen dann mit @XmlJavaTypeAdapter in der Modelklasse bekannt machen muss. Hab ich soweit getan, den Fehler bekomm ich allerdings trotzdem. Hat einer ne Idee was ich falsch mache?
[CODE lang="java" title="path attribute in der Modelklasse"]@XmlElement(name = "path")
@XmlJavaTypeAdapter(XMLPathAdapter.class)
private Path path;[/CODE]
[CODE lang="java" title="Adapter"]public class XMLPathAdapter extends XmlAdapter<String, Object> {
@Override
public Object unmarshal(String pathString) throws Exception {
return Paths.get(pathString);
}
@Override
public String marshal(Object object) throws Exception {
if (!(object instanceof Path)) {
throw new IllegalArgumentException("object is not an instance of type java.nio.file.Path");
}
Path path = (Path) object;
return path.toString();
}
}[/CODE]
Danke schon mal im vorraus
Ich habe Folgendes Problem: Ich möchte mittels JAXB verschiedene Modelklassen serialisieren bzw. deserialisieren. Darunter befindet sich allerdings eine Klasse File mit einem Attribute path vom Typ java.nio.file.Path, was zu folgendem Fehler führt:
Code:
java.nio.file.Path is an interface, and JAXB can't handle interfaces.
Ich hab mittlerweile rausbekommen das ich ein eigenen XmlAdapter scheiben und diesen dann mit @XmlJavaTypeAdapter in der Modelklasse bekannt machen muss. Hab ich soweit getan, den Fehler bekomm ich allerdings trotzdem. Hat einer ne Idee was ich falsch mache?
[CODE lang="java" title="path attribute in der Modelklasse"]@XmlElement(name = "path")
@XmlJavaTypeAdapter(XMLPathAdapter.class)
private Path path;[/CODE]
[CODE lang="java" title="Adapter"]public class XMLPathAdapter extends XmlAdapter<String, Object> {
@Override
public Object unmarshal(String pathString) throws Exception {
return Paths.get(pathString);
}
@Override
public String marshal(Object object) throws Exception {
if (!(object instanceof Path)) {
throw new IllegalArgumentException("object is not an instance of type java.nio.file.Path");
}
Path path = (Path) object;
return path.toString();
}
}[/CODE]
Danke schon mal im vorraus