JAXB UnmarshalException - 包含 # 的文件名

Jor*_*lla 3 java xml jaxb unmarshalling

场景
我正在使用 JAXB 2.0,我有一个进程从需要解组的 web 服务接收 xml 文件。名称由网络服务提供,格式如下:

ESA08021701#99152015AA00024175#20150612#20150618125838_NOTIF_250073.xml
Run Code Online (Sandbox Code Playgroud)

问题
当我尝试解组此文件时:

File file = // get my file from a list
unmarshaller.unmarshal(file);
Run Code Online (Sandbox Code Playgroud)

我明白了 UnmarshalException

javax.xml.bind.UnmarshalException - 带有链接异常:[java.io. FileNotFoundException: ESA08021701(系统找不到指定的文件。)] 在 javax.xml.bind.UnmarshalException.(UnmarshalException.java:56)

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

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

Jor*_*lla 5

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

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