解決springboot?部署到?weblogic?中?jar?包沖突的問題
背景
某項(xiàng)目,客戶要求使用已有的 weblogic 部署已經(jīng)開發(fā)好的 springboot,于是乎對 springboot 進(jìn)行了部分配置的調(diào)整,主要包括去除 tomcat 依賴,增加啟動類的處理。
一般都會比較順利,實(shí)際上總會遇到些小問題。
本文不贅述如何在 weblogic 中部署項(xiàng)目,如果你有需要,可以訪問http://www.fzitv.net/article/218458.htm 參考該文章。
問題1
打包后發(fā)布到 weblogic 上啟動時(shí),如下圖所示的錯(cuò)誤:

從異常內(nèi)容可以很容易判斷出,這是 jar 包沖突導(dǎo)致的錯(cuò)誤。
經(jīng)過定位,weblogic 有個(gè)目錄 wls12213\oracle_common\modules\thirdparty,其中存放了一些第三方的默認(rèn)的 jar 包,項(xiàng)目啟動過程中默認(rèn)是先加載這里的 jar 包,再加載項(xiàng)目工程中的 jar 包,因?yàn)槟銦o法保證項(xiàng)目工程中的 jar 包和 weblogic 中的 jar 包版本剛好一致,所以就因?yàn)?jar 包版本不一致出現(xiàn)了比較常見的類加載沖突的問題。
查閱官網(wǎng)資料,weblogic 也有是解決方案的,可以通過新增并配置 weblogic.xml 文件來定義哪些類需要優(yōu)先從項(xiàng)目工程包的 jar 包中加載。
配置方法如下:
在 springboot 項(xiàng)目代碼和 resource 同級創(chuàng)建一個(gè) webapp 目錄,然后再 webapp 目錄下創(chuàng)建 WEB-INF 目錄,將 weblogic.xml 文件放在 WEB-INF 中,以 springboot-weblogic-demo 工程為例它的完整路徑就是 springboot-weblogic-demo\\src\main\webapp\WEB-INF\weblogic.xml,其內(nèi)容如下:
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
<container-descriptor>
<prefer-application-packages>
<package-name>org.slf4j</package-name>
<package-name>javax.validation.*</package-name>
<package-name>org.hibernate.*</package-name>
<package-name>javax.el.*</package-name>
<package-name>org.springframework.*</package-name>
<!--解決項(xiàng)目中jackson的jar包和weblogic中thirdparty的jar包沖突問題,配置優(yōu)先加載項(xiàng)目中的jar-->
<package-name>com.fasterxml.jackson.*</package-name>
</prefer-application-packages>
</container-descriptor>
<context-root>/springboot-weblogic-demo</context-root>
</weblogic-web-app>僅僅是添加配置了這一個(gè)文件,沒有其他什么配置了,網(wǎng)上說的那些添加 web.xml 的操作,我這里并沒有添加,示例是基于 springboot 2.7.2 正常部署運(yùn)行。
問題2
部署的過程中還出現(xiàn)了 GC 錯(cuò)誤 GC overhead limit exceeded,這個(gè)問題比較容易解決,給 weblogic 啟動環(huán)境修改內(nèi)存值,調(diào)大一些即可。
修改對應(yīng)文件 D:\weblogic\fmw_12.2.1.3.0_wls_quick_Disk1_1of1\wls12213\user_projects\domains\base_domain\bin\setDomainEnv.cmd,大約在 200 行出頭的位置,修改后的內(nèi)容如下:
if NOT "%JAVA_VENDOR%"=="HP" ( if "%VM_TYPE%"=="HotSpot" ( set WLS_MEM_ARGS_64BIT=-Xms1024m -Xmx4096m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) )
重啟 weblogic 服務(wù),最開始就能看到我們修改后剩下的內(nèi)存配置:

WLS_MEM_ARGS_64BIT 的原始值為 -Xms256m -Xmx512m,或者你也可以追加更多關(guān)于內(nèi)存的設(shè)置,例如:-Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
我寫好的 springboot-weblogic-demo 示例工程代碼的地址:https://github.com/xzxiaoshan/springboot-weblogic-demo
到此這篇關(guān)于springboot 部署到 weblogic 中 jar 包沖突的文章就介紹到這了,更多相關(guān)springboot 部署weblogic jar 包沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot項(xiàng)目部署到服務(wù)器上的方法(Jar包)
- SpringBoot中jar打包并部署到Tomcat
- 使用SpringBoot打jar包并部署到Tomcat詳細(xì)步驟
- java 一鍵部署 jar 包和 war 包
- Spring Boot Jar 包部署腳本的實(shí)例講解
- SpringBoot項(xiàng)目jar和war打包部署方式詳解
- springboot項(xiàng)目打包發(fā)布部署的過程及jar和war的區(qū)別
- 詳解如何給SpringBoot部署的jar包瘦身
- 如何打jar包為Docker鏡像并部署
- idea一鍵部署SpringBoot項(xiàng)目jar包到服務(wù)器的實(shí)現(xiàn)
相關(guān)文章
EasyExcel實(shí)現(xiàn)讀寫Excel文件的示例代碼
EasyExcel是阿里巴巴開源的一個(gè)excel處理框架,以使用簡單、節(jié)省內(nèi)存著稱。它可以在盡可能節(jié)約內(nèi)存的情況下支持讀寫百M(fèi)的Excel,所以本文就將利用它實(shí)現(xiàn)讀寫Excel文件,感興趣的可以了解一下2022-08-08
Log4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載(替換過程)
Apache?開源項(xiàng)目?Log4j?的遠(yuǎn)程代碼執(zhí)行漏洞細(xì)節(jié)被公開,由于?Log4j?的廣泛使用,該漏洞一旦被攻擊者利用會造成嚴(yán)重危害,下面小編給大家?guī)砹薒og4j2?重大漏洞編譯好的log4j-2.15.0.jar包下載,感興趣的朋友一起看看吧2021-12-12
java獲取當(dāng)前時(shí)間并格式化代碼實(shí)例
這篇文章主要介紹了java獲取當(dāng)前時(shí)間并格式化代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
springboot執(zhí)行延時(shí)任務(wù)之DelayQueue的使用詳解
DelayQueue是一個(gè)無界阻塞隊(duì)列,只有在延遲期滿時(shí),才能從中提取元素。這篇文章主要介紹了springboot執(zhí)行延時(shí)任務(wù)-DelayQueue的使用,需要的朋友可以參考下2019-12-12
Mybatis 中的sql批量修改方法實(shí)現(xiàn)
在項(xiàng)目中遇到需要批量更新的功能,原本想的是在Java中用循環(huán)訪問數(shù)據(jù)庫去更新,但是心里總覺得這樣做會不會太頻繁了,太耗費(fèi)資源了,效率也很低,查了下mybatis的批量操作,原來確實(shí)有<foreach>標(biāo)簽可以做到,下面通過本文給大家介紹下2017-01-01

