2016-04-25 5 views
0

Я использую XStream для разметки файлов Data.xml. Когда я запускаю его с помощью функции main(), он отлично работает, но когда я пытаюсь запустить его через мое загрузочное приложение, оно дает мне UnknownFieldException.UnknownFieldException только в весеннем загрузочном приложении

Вызванный: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ UnknownFieldException: Нет такого поля workshop.tokenizer.data.Attributes.attribute ---- Отладочная информация ---- сообщение: Нет такое поле workshop.tokenizer.data.Attributes.attribute Поле: атрибут класс: workshop.tokenizer.data.Attributes required-type: workshop.tokenizer.data.Attributes Тип конвертера: com.thoughtworks.xstream.converters. отражающий.ReflectionConverter класс [1]: workshop.tokenizer.data.DataObj класс [2]: java.util.ArrayList преобразователь типа [1]: com.thoughtworks.xstream.converters.collections.CollectionConverter класс [3]: workshop.tokenizer.wrappers.DataObjects версия: 1.4.9

, когда я звоню это метод создания основной объект не в состоянии с этим исключением, но если я называю ту же линию от «государственной статической силы основных ...» она прекрасно работает

@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; 

} 

внутри Main является использовать эту линию, чтобы распаковать data.xml

FileReader reader = new FileReader("Files/Data.xml"); 
    objects = (DataObjects) xstream.fromXML(reader); 

любые идеи, почему странное поведение?

Благодаря

Update

Я заметил, что XStreamAlias ​​аннотации игнорируются, так что я добавил xstream.autodetectAnnotations (истина); , но теперь я получаю это исключение:

java.lang.ClassCastException: wrappers.DataObjects cannot be cast to wrappers.DataObjects 

Я использую эту строку распаковать в XML:

FileReader reader = new FileReader("Files/Data.xml");  
DataObjects objects = (DataObjects) xstream.fromXML(reader); 

ответ

1

Добавление

xstream.setClassLoader(DataObjects.class.getClassLoader()); 

зафиксировал его.

 Смежные вопросы

  • Нет связанных вопросов^_^