我们的项目有报表功能,所以专门用了个文件夹来保存生成的excel文件,由于服务器用的是weblogic,文档中明确说了,项目中有文件目录结构变化的不能打包部署到weblogic上,所以我们一直是用文件夹的形式部署到服务器上去的,近来项目更新走流程要经过运维部,结果项目更新一拖再拖迟迟不能实施,于是头就想,把项目打个包远程更新得了,但问题也来了,我们原先是通过浏览器直接访问生成的excel文件来实现报表下载功能的,而报表存放的文件夹又是纳入到web项目的目录结构里的,这样一来一打包原先的报表下载功能就用不了了。一开始想到用response来实现下载,可是一,要改很多代码。二,出现中文乱码。后来在一个javaee群里经人提醒可以用weblogic的虚拟路径解决,试了一下果真是最好的解决办法了。
解决的方法为:在weblogic.xml文件中配置要映射的路径为虚拟路径。
<virtual-directory-mapping>
<local-path>D:/PRfcas</local-path>
<url-pattern>/tables/*</url-pattern>
</virtual-directory-mapping>
例如要访问D:/PRfcas/tables/sometables/table.xls文件,则只要在页面中访问地址contextPath/tables/sometables/table.xls就可以了。