Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan konflik pakej jar apabila menggunakan springboot ke weblogic

Bagaimana untuk menyelesaikan konflik pakej jar apabila menggunakan springboot ke weblogic

PHPz
PHPzke hadapan
2023-05-11 17:10:061716semak imbas

Latar Belakang

Dalam projek tertentu, pelanggan perlu menggunakan weblogik sedia ada untuk menggunakan springboot yang dibangunkan, jadi beberapa pelarasan konfigurasi dibuat pada springboot, terutamanya termasuk mengalih keluar pergantungan tomcat dan menambah pemprosesan kelas permulaan.

Ia biasanya berjalan lancar, tetapi sebenarnya selalu ada masalah kecil.

Masalah 1

Apabila pakej diterbitkan ke weblogic dan dimulakan, ralat ditunjukkan dalam rajah di bawah:

Bagaimana untuk menyelesaikan konflik pakej jar apabila menggunakan springboot ke weblogic

Ia boleh dilihat daripada kandungan pengecualian Adalah mudah untuk menilai bahawa ini adalah ralat yang disebabkan oleh konflik pakej balang.

Selepas mencari, weblogic mempunyai direktori wls12213oracle_commonmodulesthirdparty, yang menyimpan beberapa pakej balang lalai pihak ketiga Semasa proses permulaan projek, lalai adalah untuk memuatkan pakej balang di sini dahulu, dan kemudian memuatkan pakej balang. dalam projek projek , kerana anda tidak boleh menjamin bahawa versi pakej balang dalam projek adalah betul-betul sama dengan versi pakej balang dalam weblogic, jadi konflik pemuatan kelas biasa berlaku kerana versi pakej balang yang tidak konsisten.

Semak maklumat tapak web rasmi, weblogic juga mempunyai penyelesaian Anda boleh menentukan kelas mana yang perlu dimuatkan dahulu daripada pakej balang pakej kejuruteraan projek dengan menambah dan mengkonfigurasi fail weblogic.xml.

Kaedah konfigurasi adalah seperti berikut:

Buat direktori aplikasi web pada tahap yang sama dengan kod dan sumber projek springboot, kemudian buat direktori WEB-INF di bawah direktori webapp, dan tambah weblogic.xml Fail diletakkan dalam WEB-INF Mengambil projek springboot-weblogic-demo sebagai contoh, laluan penuhnya ialah springboot-weblogic-demo\srcmainwebappWEB-INFweblogic.xml dan kandungannya adalah seperti berikut:

<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>
<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>
            <!--解决项目中jackson的jar包和weblogic中thirdparty的jar包冲突问题,配置优先加载项目中的jar-->
            <package-name>com.fasterxml.jackson.*</package-name>
        </prefer-application-packages>
    </container-descriptor>
    <context-root>/springboot-weblogic-demo</context-root>
</weblogic-web-app>
hanya menambah dan mengkonfigurasi fail ini, tidak Apakah konfigurasi lain yang saya belum menambah operasi menambah web.xml yang disebutkan di Internet di sini .

Masalah 2

Ralat GC juga berlaku semasa proses penggunaan

Masalah ini agak mudah untuk diselesaikan. Hanya mengubah suai nilai memori untuk persekitaran permulaan weblogik ia. GC overhead limit exceeded

Ubah suai fail yang sepadan

, iaitu sekitar permulaan baris 200. Kandungan yang diubah suai adalah seperti berikut: D:weblogicfmw_12.2.1.3.0_wls_quick_Disk1_1of1wls12213user_projectsdomainsbase_domainbinsetDomainEnv.cmd

if NOT "%JAVA_VENDOR%"=="HP" (
	if "%VM_TYPE%"=="HotSpot" (
		set WLS_MEM_ARGS_64BIT=-Xms1024m -Xmx4096m
		set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m
	)
)

Mulakan semula perkhidmatan weblogic, dan anda boleh melihat selebihnya pengubahsuaian pada permulaan Konfigurasi memori:

Bagaimana untuk menyelesaikan konflik pakej jar apabila menggunakan springboot ke weblogic

Nilai asal WLS_MEM_ARGS_64BIT ialah -Xms256m -Xmx512m, atau anda boleh menambah lebih banyak tetapan memori, contohnya: -Xms512m - Xmx1024m - XX:MaxNewSize=1024m -XX:MaxPermSize=1024m

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan konflik pakej jar apabila menggunakan springboot ke weblogic. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam