日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null

發布時間:2024/8/1 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

圖片上傳功能, web項目部署在本地Tomcat上并沒有問題, 但是打成war包部署到Linux服務器Weblogic下卻出現如題問題, 導致圖片上傳失敗.

問題代碼

String realPath = uploadFile.getMultipartRequest().getSession().getServletContext().getRealPath("/") + "/" + path;//文件的硬盤真實路徑

在Windows下部署到Tomcat沒有問題, 項目打成war包后部署到Weblogic獲取不到項目根目錄.

解決方案

通過獲取class文件所在路徑, 然后對該路徑進行處理.

String rootPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");//獲取到的這個路徑包含/WEB-INF/classes

結果日志

home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/3/tmp/_WL_user/cqyyt/i9yd39/war/WEB-INF/classes/

home前面并沒有"/", 而且還包含"/WEB-INF/classes/"這樣的路徑也不是想要的結果.

最終修改

將獲取到的路徑前加"/", 同時把"/WEB-INF/classes"截取掉.

String rootPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");//cnblogs

rootPath = StringUtils.substringBeforeLast(rootPath,"/WEB-INF/classes");

logger.info("==============uploadFile 測試獲取項目根目錄 rootPath: "+rootPath);

String realPath= "/" + rootPath + "/" + path;//文件的硬盤真實路徑

到服務器上找, 發現部署后的war包解壓到了路徑下(也就是最終想要的路徑rootPath):

/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/3/tmp/_WL_user/cqyyt/i9yd39/war

結果日志

效果圖

不明白的地方

奇怪的是這樣寫并不影響Tomcat部署, 本來還在想這樣在路徑前加"/"會影響Windows下Tomcat部署項目圖片上傳, 結果:

第二條數據的照片是本地測試結果, 發現雖然文件保存全路徑前有"/"但是并不影響圖片的上傳?

小結

說到底還是獲取路徑的問題,對已獲取的路徑“改造”是一個思路.

感謝

總結

以上是生活随笔為你收集整理的linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。