あるプロジェクトでは、顧客は開発した Springboot をデプロイするために既存の WebLogic を使用する必要があったため、主に Tomcat の依存関係の削除やスタートアップ クラスの処理の追加など、Springboot に対していくつかの構成調整が行われました。
通常は順調に進みますが、実際には常に小さな問題が発生します。
パッケージが Weblogic にリリースされて開始されると、次の図に示すエラーが発生します:
例外これは、jar パッケージの競合によって引き起こされるエラーであると判断するのは簡単です。
見つけた後、weblogic にはディレクトリ wls12213\oracle_common\modules\thirdparty
があり、これにはいくつかのサードパーティのデフォルトの jar パッケージが保存されます。プロジェクトの起動プロセス中に、ここの jar は最初にロードされます。デフォルトのパッケージを作成し、プロジェクト プロジェクトに jar パッケージをロードします。プロジェクト プロジェクトの jar パッケージのバージョンと Weblogic の jar パッケージのバージョンがまったく同じであることは保証できないため、一貫性がないために一般的なクラス読み込みの競合が発生します。 jar パッケージのバージョン。
公式 Web サイトの情報を確認してください。weblogic にも解決策があります。weblogic.xml ファイルを追加して構成することで、プロジェクト エンジニアリング パッケージの jar パッケージから最初にロードする必要があるクラスを定義できます。
設定方法は次のとおりです。
springboot プロジェクトのコードとリソースと同じレベルに webapp ディレクトリを作成し、その下に WEB-INF ディレクトリを作成します。 webapp ディレクトリに weblogic.xml を追加 ファイルは WEB-INF に配置されます springboot-weblogic-demo プロジェクトを例にとると、そのフル パスは springboot-weblogic-demo\\src\main\webapp\WEB となります-INF\weblogic.xml
、その内容は次のとおりです:
<?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> <!--解决项目中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>
このファイルを追加して構成するだけで、他の構成はありません。Web を追加する操作は追加していません.xml はインターネットでここで言及されています。この例は、springboot 2.7 .2 の通常のデプロイメント操作に基づいています。
デプロイメント プロセス中に GC エラーも発生しましたGC オーバーヘッド制限を超えました
。この問題は比較的簡単に解決できます。メモリ値を変更してください。 WebLogic 起動環境の場合は、値を増やすだけです。
対応するファイル #D:\weblogic\fmw_12.2.1.3.0_wls_quick_Disk1_1of1\wls12213\user_projects\domains\base_domain\bin\setDomainEnv.cmd
の 200 行目の先頭付近を変更します。最終的な内容は次のとおりです:
if NOT "%JAVA_VENDOR%"=="HP" ( if "%VM_TYPE%"=="HotSpot" ( set WLS_MEM_ARGS_64BIT=-Xms1024m -Xmx4096m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) )
Weblogic サービスを再起動すると、最初に変更した後の残りのメモリ構成が表示されます:
##WLS_MEM_ARGS_64BIT 元の値は -Xms256m -Xmx512m ですが、さらにメモリ設定を追加することもできます。例: -Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
以上がspringboot を Weblogic にデプロイするときに jar パッケージの競合を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。