2015-06-18 2 views
3

СЦЕНАРИЙ
Я использую JAXB 2.0, и у меня был процесс, получать XML-файлы с веб-сервиса, которые должны быть unmarshalled. Имена обеспечиваются WebService и с форматом:JAXB UnmarshalException - Имя файла, содержащего #

ESA08021701#99152015AA00024175#20150612#20150618125838_NOTIF_250073.xml 

ПРОБЛЕМА
Когда я пытаюсь маршализацией этих файлов:

File file = // get my file from a list 
unmarshaller.unmarshal(file); 

Я получаю UnmarshalException

javax.xml. bind.UnmarshalException - со связанным исключением: [java.io. FileNotFoundException:. ESA08021701 (. Система не может найти указанный файл)] на javax.xml.bind.UnmarshalException (UnmarshalException.java:56)

Я notticed имя файла в Exception не завершена ESA08021701, но отладки я могу видеть имя файла правильно и File существует ...

ВОПРОС
является ли это ошибка? AFAIK # не является специальным символом для имен файлов? Как я могу обработать эти файлы?

ответ

3

После исследования в документации и форумах, я предполагаю, что это до сих пор является JaxB проблемы, но в конце концов я нашел обходной путь с FileInputStream для этого, что может быть полезным для других:

File file = // get my file from a list 
Object unmarshalled = unmarshaller.unmarshal(new FileInputStream(myFile)); 
Смежные вопросы