JAXB UnmarshalException - 包含 # 的文件名
JAXB UnmarshalException - Filename containing #
场景
我正在使用 JAXB 2.0,并且我有一个进程从需要解组的 Web 服务接收 xml 文件。名称由网络服务提供,格式为:
ESA08021701#99152015AA00024175#20150612#20150618125838_NOTIF_250073.xml
问题
当我尝试解组这些文件时:
File file = // get my file from a list
unmarshaller.unmarshal(file);
我明白了UnmarshalException
javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.FileNotFoundException: ESA08021701 (The system cannot find the file specified.)]
at javax.xml.bind.UnmarshalException.(UnmarshalException.java:56)
我注意到 Exception
中的文件名不完整 ESA08021701
,但调试我可以看到文件名是正确的并且 File
存在...
问题
这是一个错误吗? AFAIK #
不是文件名的特殊字符?我该如何处理这些文件?
在文档和论坛中进行研究后,我想这仍然是一个 JaxB
问题,但最终我找到了 FileInputStream
的解决方法,对其他人可能有用:
File file = // get my file from a list
Object unmarshalled = unmarshaller.unmarshal(new FileInputStream(myFile));
场景
我正在使用 JAXB 2.0,并且我有一个进程从需要解组的 Web 服务接收 xml 文件。名称由网络服务提供,格式为:
ESA08021701#99152015AA00024175#20150612#20150618125838_NOTIF_250073.xml
问题
当我尝试解组这些文件时:
File file = // get my file from a list
unmarshaller.unmarshal(file);
我明白了UnmarshalException
javax.xml.bind.UnmarshalException - with linked exception: [java.io.FileNotFoundException: ESA08021701 (The system cannot find the file specified.)] at javax.xml.bind.UnmarshalException.(UnmarshalException.java:56)
我注意到 Exception
中的文件名不完整 ESA08021701
,但调试我可以看到文件名是正确的并且 File
存在...
问题
这是一个错误吗? AFAIK #
不是文件名的特殊字符?我该如何处理这些文件?
在文档和论坛中进行研究后,我想这仍然是一个 JaxB
问题,但最终我找到了 FileInputStream
的解决方法,对其他人可能有用:
File file = // get my file from a list
Object unmarshalled = unmarshaller.unmarshal(new FileInputStream(myFile));