Ich benutze XStream, um Data.xml-Dateien zu entpacken. Wenn ich es mit meiner Funktion main() ausführe, funktioniert es perfekt, aber wenn ich versuche, es über meine Boot-App auszuführen, bekomme ich eine UnknownFieldException.UnknownFieldException nur im Frühjahr Start-App
Verursacht durch: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ UnknownFieldException: No such Feld workshop.tokenizer.data.Attributes.attribute ---- ---- Debugging-Informationen Nachricht: Keine solches Feld workshop.tokenizer.data.Attributes.attribute Feld: Attribut Klasse: workshop.tokenizer.data.Attributes erforderlich Typ: workshop.tokenizer.data.Attributes Konverter-Typ: com.thoughtworks.xstream.converters. reflection.ReflectionConverter Klasse [1]: workshop.tokenizer.data.DataObj Klasse [2]: java.util.ArrayList Wandler-Typ [1]: com.thoughtworks.xstream.converters.collections.CollectionConverter Klasse [3]: workshop.tokenizer.wrappers.DataObjects Version: 1.4.9
wenn ich dies Aufruf Verfahren, Erstellen von Hauptobjekt mit dieser Ausnahme nicht, aber wenn ich die gleiche Linie von „public Haupt static void ...“ nennen, es funktioniert perfekt
@RequestMapping(method = RequestMethod.POST, value = "/test")
public ResponseEntity<SFRecord> execute(@RequestBody RequestDto json)
throws ClassNotFoundException, SQLException, FileNotFoundException {
Request request = json.convert();
Main main = new Main();
RequestObj reqObj = main.execute(request.getSentence());
ResponseEntity<SFRecord> result = restTemplate.exchange(parserUrl, HttpMethod.POST,
new HttpEntity<RequestObj>(reqObj), SFRecord.class);
return result;
}
innerhalb Main ist diese Linie verwenden, um unmarshal data.xml
FileReader reader = new FileReader("Files/Data.xml");
objects = (DataObjects) xstream.fromXML(reader);
irgendwelche Ideen, warum das seltsame Verhalten?
Dank
aktualisieren
bemerkte ich, dass die XStreamAlias Anmerkungen ignoriert werden, so dass ich hinzugefügt xstream.autodetectAnnotations (true); aber jetzt bekomme ich diese Ausnahme:
java.lang.ClassCastException: wrappers.DataObjects cannot be cast to wrappers.DataObjects
ich diese Linie bin mit dem xml entpacken:
FileReader reader = new FileReader("Files/Data.xml");
DataObjects objects = (DataObjects) xstream.fromXML(reader);