解決springboot?部署到?weblogic?中?jar?包沖突的問(wèn)題
背景
某項(xiàng)目,客戶要求使用已有的 weblogic 部署已經(jīng)開(kāi)發(fā)好的 springboot,于是乎對(duì) springboot 進(jìn)行了部分配置的調(diào)整,主要包括去除 tomcat 依賴(lài),增加啟動(dòng)類(lèi)的處理。
一般都會(huì)比較順利,實(shí)際上總會(huì)遇到些小問(wèn)題。
本文不贅述如何在 weblogic 中部署項(xiàng)目,如果你有需要,可以訪問(wèn)http://www.dbjr.com.cn/article/218458.htm 參考該文章。
問(wèn)題1
打包后發(fā)布到 weblogic 上啟動(dòng)時(shí),如下圖所示的錯(cuò)誤:
從異常內(nèi)容可以很容易判斷出,這是 jar 包沖突導(dǎo)致的錯(cuò)誤。
經(jīng)過(guò)定位,weblogic 有個(gè)目錄 wls12213\oracle_common\modules\thirdparty
,其中存放了一些第三方的默認(rèn)的 jar 包,項(xiàng)目啟動(dòng)過(guò)程中默認(rèn)是先加載這里的 jar 包,再加載項(xiàng)目工程中的 jar 包,因?yàn)槟銦o(wú)法保證項(xiàng)目工程中的 jar 包和 weblogic 中的 jar 包版本剛好一致,所以就因?yàn)?jar 包版本不一致出現(xiàn)了比較常見(jiàn)的類(lèi)加載沖突的問(wèn)題。
查閱官網(wǎng)資料,weblogic 也有是解決方案的,可以通過(guò)新增并配置 weblogic.xml 文件來(lái)定義哪些類(lèi)需要優(yōu)先從項(xiàng)目工程包的 jar 包中加載。
配置方法如下:
在 springboot 項(xiàng)目代碼和 resource 同級(jí)創(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包沖突問(wèn)題,配置優(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è)文件,沒(méi)有其他什么配置了,網(wǎng)上說(shuō)的那些添加 web.xml 的操作,我這里并沒(méi)有添加,示例是基于 springboot 2.7.2 正常部署運(yùn)行。
問(wèn)題2
部署的過(guò)程中還出現(xiàn)了 GC 錯(cuò)誤 GC overhead limit exceeded
,這個(gè)問(wèn)題比較容易解決,給 weblogic 啟動(dòng)環(huán)境修改內(nèi)存值,調(diào)大一些即可。
修改對(duì)應(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ù),最開(kāi)始就能看到我們修改后剩下的內(nèi)存配置:
WLS_MEM_ARGS_64BIT 的原始值為 -Xms256m -Xmx512m,或者你也可以追加更多關(guān)于內(nèi)存的設(shè)置,例如:-Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
我寫(xiě)好的 springboot-weblogic-demo 示例工程代碼的地址:https://github.com/xzxiaoshan/springboot-weblogic-demo
到此這篇關(guān)于springboot 部署到 weblogic 中 jar 包沖突的文章就介紹到這了,更多相關(guān)springboot 部署weblogic jar 包沖突內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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ā)布部署的過(guò)程及jar和war的區(qū)別
- 詳解如何給SpringBoot部署的jar包瘦身
- 如何打jar包為Docker鏡像并部署
- idea一鍵部署SpringBoot項(xiàng)目jar包到服務(wù)器的實(shí)現(xiàn)
相關(guān)文章
@ConfigurationProperties加載外部配置方式
這篇文章主要介紹了@ConfigurationProperties加載外部配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03如何優(yōu)雅的進(jìn)行Spring整合MongoDB詳解
這篇文章主要給大家介紹了如何優(yōu)雅的進(jìn)行Spring整合MongoDB的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能
這篇文章主要介紹了Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Java實(shí)現(xiàn)多個(gè)sheet頁(yè)數(shù)據(jù)導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多個(gè)sheet頁(yè)數(shù)據(jù)導(dǎo)出功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03Java Web端程序?qū)崿F(xiàn)文件下載的方法分享
這篇文章主要介紹了Java Web端程序?qū)崿F(xiàn)文件下載的方法分享,包括一個(gè)包含防盜鏈功能的專(zhuān)門(mén)針對(duì)圖片下載的程序代碼示例,需要的朋友可以參考下2016-05-05