Apache Tomcat 8.0中Java应用如何配置跨盘符文件访问路径
Java Web应用跨盘访问文件配置问题
场景说明
现有Java Web应用通过读取web.xml中配置的路径参数,访问目标存储位置的文件,配置项通用格式如下:
<param-value>//USERNAME:PASSWORD@IP_ADDRESS/HARD_DRIVE_LETTER/FOLDER_NAME/</param-value>
各参数定义:
USERNAME:目标计算机的登录用户名PASSWORD:对应用户的登录密码IP_ADDRESS:目标计算机的IPv4地址HARD_DRIVE_LETTER:待访问的硬盘盘符,本次需访问J盘FOLDER_NAME:待访问的目标文件夹名称
历史配置情况
- 单硬盘测试阶段,使用如下配置可正常访问
C:\Documents路径下的文件:
<param-value>//USERNAME:PASSWORD@127.0.0.1/Documents/</param-value>
- 迁移到新环境后尝试过如下配置,未生效:
<param-value>//USERNAME:PASSWORD@127.0.0.1/J:/Documents/</param-value>
当前环境信息
- Apache Tomcat 8.0.30安装在本机I盘
- 待访问的文件存储在本机J盘
- 需明确正确的配置URL写法,实现目标路径文件的正常访问
正确配置方法
配置失效的核心原因是SMB共享路径的盘符书写不符合规范:Windows系统通过SMB协议访问本地盘符默认共享时,盘符后不需要加冒号,直接填写盘符字母即可。
正确配置如下:
<param-value>//USERNAME:PASSWORD@127.0.0.1/J/Documents/</param-value>
补充说明:单硬盘环境下不写盘符可正常访问C盘,是因为不显式指定盘符时,SMB默认共享会自动指向系统盘(通常为C盘)。跨盘访问时必须按照
/盘符/文件夹路径的格式书写,带冒号的写法会导致路径解析失败,无法定位到J盘的对应目录。
内容的提问来源于stack exchange,提问作者Christian Sêngir
相关产品推荐
相关产品推荐

