


So lösen Sie JAR-Paketkonflikte bei der Bereitstellung von Springboot für Weblogic
Hintergrund
In einem bestimmten Projekt musste der Kunde vorhandene Weblogik verwenden, um das entwickelte Springboot bereitzustellen. Daher wurden einige Konfigurationsanpassungen an Springboot vorgenommen, darunter hauptsächlich das Entfernen der Tomcat-Abhängigkeit und das Hinzufügen von Startup-Klassen. Verarbeitung.
Im Allgemeinen läuft es reibungslos, aber tatsächlich gibt es immer ein paar kleinere Probleme.
Frage 1
Wenn das Paket in Weblogic veröffentlicht und gestartet wird, ist der in der Abbildung unten gezeigte Fehler:
# 🎜🎜#
wls12213oracle_commonmodulesthirdparty
, in dem einige Standard-JAR-Pakete von Drittanbietern gespeichert werden. Hier wird zuerst das Standard-JAR-Paket geladen Laden Sie dann das JAR-Paket im Projektprojekt, da Sie nicht garantieren können, dass die Versionen des JAR-Pakets im Projektprojekt und des JAR-Pakets in Weblogic genau identisch sind, sodass aufgrund inkonsistenter JAR-Paketversionen ein häufiger Klassenladekonflikt auftritt. wls12213oracle_commonmodulesthirdparty
,其中存放了一些第三方的默认的 jar 包,项目启动过程中默认是先加载这里的 jar 包,再加载项目工程中的 jar 包,因为你无法保证项目工程中的 jar 包和 weblogic 中的 jar 包版本刚好一致,所以就因为 jar 包版本不一致出现了比较常见的类加载冲突的问题。
查阅官网资料,weblogic 也有是解决方案的,可以通过新增并配置 weblogic.xml 文件来定义哪些类需要优先从项目工程包的 jar 包中加载。
配置方法如下:
在 springboot 项目代码和 resource 同级创建一个 webapp 目录,然后再 webapp 目录下创建 WEB-INF 目录,将 weblogic.xml 文件放在 WEB-INF 中,以 springboot-weblogic-demo 工程为例它的完整路径就是 springboot-weblogic-demo\srcmainwebappWEB-INFweblogic.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 正常部署运行。
问题2
部署的过程中还出现了 GC 错误 GC overhead limit exceeded
,这个问题比较容易解决,给 weblogic 启动环境修改内存值,调大一些即可。
修改对应文件 D:weblogicfmw_12.2.1.3.0_wls_quick_Disk1_1of1wls12213user_projectsdomainsbase_domainbinsetDomainEnv.cmd
Überprüfen Sie die offiziellen Website-Informationen. Weblogic hat auch eine Lösung. Sie können definieren, welche Klassen zuerst aus dem JAR-Paket des Projekt-Engineering-Pakets geladen werden müssen, indem Sie die Datei weblogic.xml hinzufügen und konfigurieren.
Die Konfigurationsmethode lautet wie folgt:
Erstellen Sie ein Webapp-Verzeichnis auf derselben Ebene wie der Code und die Ressource des Springboot-Projekts und erstellen Sie dann ein Platzieren Sie die Datei weblogic.xml im Verzeichnis WEB-INF im Verzeichnis WEB-INF. Am Beispiel des Projekts springboot-weblogic-demo lautet der vollständige Pfad springboot-weblogic-demo\srcmainwebappWEB-INFweblogic.xml
, und sein Inhalt ist wie folgt:
if NOT "%JAVA_VENDOR%"=="HP" ( if "%VM_TYPE%"=="HotSpot" ( set WLS_MEM_ARGS_64BIT=-Xms1024m -Xmx4096m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) )
Fügen Sie einfach diese Datei hinzu und konfigurieren Sie sie. Es gibt keine andere Konfiguration. Ich habe die erwähnten Vorgänge zum Hinzufügen von web.xml nicht hinzugefügt im Internet hier. Das Beispiel basiert auf Springboot 2.7.2 Normaler Bereitstellungsbetrieb.Problem 2#🎜🎜##🎜🎜#Der GC-Fehler
GC-Overhead-Limit überschritten
ist auch während des Bereitstellungsprozesses aufgetreten. Dieses Problem ist relativ einfach zu lösen . Ändern Sie den Speicherwert in der Weblogic-Startumgebung und erhöhen Sie ihn. #🎜🎜##🎜🎜# Ändern Sie die entsprechende Datei D:weblogicfmw_12.2.1.3.0_wls_quick_Disk1_1of1wls12213user_projectsdomainsbase_domainEnv.cmd
, ungefähr am Anfang von Zeile 200. Der geänderte Inhalt lautet wie folgt: #🎜🎜#rrre ee # 🎜 🎜#Starten Sie den Weblogic-Dienst neu und Sie können die verbleibende Speicherkonfiguration nach unserer Änderung am Anfang sehen: #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Das Original Der Wert von WLS_MEM_ARGS_64BIT ist -Xms256m -Xmx512m, oder Sie können weitere Speichereinstellungen hinzufügen, zum Beispiel: -Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m#🎜🎜##🎜🎜#Das obige ist der detaillierte Inhalt vonSo lösen Sie JAR-Paketkonflikte bei der Bereitstellung von Springboot für Weblogic. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Voraussetzungen für die Ausführung von JAR-Dateien Die Ausführung von JAR-Dateien auf einem Linux-System erfordert die Installation der Java Runtime Environment (JRE), der Grundkomponente, die zum Ausführen von Java-Anwendungen erforderlich ist, einschließlich der Java Virtual Machine (JVM), Kernklassenbibliotheken usw. Viele gängige Linux-Distributionen wie Ubuntu, Debian, Fedora, openSUSE usw. bieten Softwarebibliotheken mit JRE-Paketen, um die Benutzerinstallation zu erleichtern. Im folgenden Artikel werden die Schritte zur Installation von JRE auf gängigen Distributionen detailliert beschrieben. Nach dem Einrichten der JRE können Sie je nach Ihren persönlichen Vorlieben das Befehlszeilenterminal oder die grafische Benutzeroberfläche zum Starten der JAR-Datei verwenden. Ihre Wahl hängt möglicherweise von Ihrer Vertrautheit mit Linux-Shells und Ihren persönlichen Vorlieben ab

Einführung in Jasypt Jasypt ist eine Java-Bibliothek, die es einem Entwickler ermöglicht, seinem Projekt mit minimalem Aufwand grundlegende Verschlüsselungsfunktionen hinzuzufügen und kein tiefes Verständnis der Funktionsweise der Verschlüsselung erfordert. standardbasierte Verschlüsselungstechnologie. Passwörter, Text, Zahlen, Binärdateien verschlüsseln ... Geeignet für die Integration in Spring-basierte Anwendungen, offene API, zur Verwendung mit jedem JCE-Anbieter ... Fügen Sie die folgende Abhängigkeit hinzu: com.github.ulisesbocchiojasypt-spring-boot-starter2 Die Vorteile von Jasypt schützen unsere Systemsicherheit. Selbst wenn der Code durchgesickert ist, kann die Datenquelle garantiert werden.

Nutzungsszenario 1. Die Bestellung wurde erfolgreich aufgegeben, die Zahlung erfolgte jedoch nicht innerhalb von 30 Minuten. Die Zahlung ist abgelaufen und die Bestellung wurde automatisch storniert. 2. Die Bestellung wurde unterzeichnet und es wurde 7 Tage lang keine Bewertung durchgeführt. Wenn die Bestellung abläuft und nicht ausgewertet wird, wird die Bestellung standardmäßig positiv bewertet. Wenn der Händler die Bestellung innerhalb von 5 Minuten nicht erhält, wird die Bestellung abgebrochen Es wird eine SMS-Erinnerung gesendet ... Für Szenarien mit langen Verzögerungen und geringer Echtzeitleistung können wir die Aufgabenplanung verwenden, um eine regelmäßige Abfrageverarbeitung durchzuführen. Zum Beispiel: xxl-job Heute werden wir auswählen

WebLogic und Tomcat sind zwei häufig verwendete Java-Anwendungsserver. Sie weisen einige Unterschiede in Funktionen und Merkmalen auf. In diesem Artikel werden den Lesern die wichtigsten Funktionsvergleiche und Unterschiede zwischen WebLogic und Tomcat vorgestellt. WebLogic ist ein Java-Anwendungsserver, der von der Oracle Corporation entwickelt und verwaltet wird. Als vollständiger JavaEE-Anwendungsserver (Java Enterprise Edition) bietet er umfangreiche Funktionen und hohe Zuverlässigkeit. Netz

1. Redis implementiert das Prinzip der verteilten Sperren und warum verteilte Sperren erforderlich sind. Bevor über verteilte Sperren gesprochen wird, muss erläutert werden, warum verteilte Sperren erforderlich sind. Das Gegenteil von verteilten Sperren sind eigenständige Sperren. Wenn wir Multithread-Programme schreiben, vermeiden wir Datenprobleme, die durch den gleichzeitigen Betrieb einer gemeinsam genutzten Variablen verursacht werden. Normalerweise verwenden wir eine Sperre, um die Richtigkeit der gemeinsam genutzten Variablen sicherzustellen Die gemeinsam genutzten Variablen liegen im gleichen Prozess. Wenn es mehrere Prozesse gibt, die gleichzeitig eine gemeinsam genutzte Ressource betreiben müssen, wie können sie sich dann gegenseitig ausschließen? Heutige Geschäftsanwendungen sind in der Regel Microservice-Architekturen, was auch bedeutet, dass eine Anwendung mehrere Prozesse bereitstellen muss. Wenn mehrere Prozesse dieselbe Datensatzzeile in MySQL ändern müssen, ist eine Verteilung erforderlich, um fehlerhafte Daten zu vermeiden wird zu diesem Zeitpunkt eingeführt. Der Stil ist gesperrt. Punkte erreichen wollen

Springboot liest die Datei, kann aber nach dem Packen in ein JAR-Paket nicht auf die neueste Entwicklung zugreifen. Es gibt eine Situation, in der Springboot die Datei nach dem Packen in ein JAR-Paket nicht lesen kann ist ungültig und kann nur über den Stream gelesen werden. Die Datei befindet sich unter resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

Wenn Springboot + Mybatis-plus keine SQL-Anweisungen zum Hinzufügen mehrerer Tabellen verwendet, werden die Probleme, auf die ich gestoßen bin, durch die Simulation des Denkens in der Testumgebung zerlegt: Erstellen Sie ein BrandDTO-Objekt mit Parametern, um die Übergabe von Parametern an den Hintergrund zu simulieren dass es äußerst schwierig ist, Multi-Table-Operationen in Mybatis-plus durchzuführen. Wenn Sie keine Tools wie Mybatis-plus-join verwenden, können Sie nur die entsprechende Mapper.xml-Datei konfigurieren und die stinkende und lange ResultMap konfigurieren Schreiben Sie die entsprechende SQL-Anweisung. Obwohl diese Methode umständlich erscheint, ist sie äußerst flexibel und ermöglicht es uns
