我們的項目有報表功能,所以專門用了個文件夾來保存生成的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就可以了。