JAXB UnmarshalException - 包含#的文件名

时间:2015-06-18 16:23:55

标签: java xml jaxb unmarshalling

SCENARIO
我正在使用JAXB 2.0,我有一个进程从Web服务接收需要解组的xml文件。名称由webservice提供,格式为:

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)

我已经注意到Exception中的文件名不是complet ESA08021701,但调试我可以看到文件名是正确的并且File存在...

QUESTION
这是一个错误吗? AFAIK #不是文件名的特殊字符?我该如何处理这些文件?

1 个答案:

答案 0 :(得分:3)

在文档和论坛中进行研究后,我想这仍然是一个JaxB问题,但最后我找到了FileInputStream的解决方法,这对其他人有用:

File file = // get my file from a list
Object unmarshalled = unmarshaller.unmarshal(new FileInputStream(myFile));