diff --git a/ems-core/pom.xml b/ems-core/pom.xml
index 666cf207f9..8b92156c62 100644
--- a/ems-core/pom.xml
+++ b/ems-core/pom.xml
@@ -68,7 +68,7 @@
org.apache.logging.log4j
log4j-bom
- 2.24.3
+ 2.25.0
import
pom
diff --git a/ems-core/src/main/java/it/integry/ems/_context/EmsCoreContext.java b/ems-core/src/main/java/it/integry/ems/_context/EmsCoreContext.java
index 1d421eeb7d..51ca53149a 100644
--- a/ems-core/src/main/java/it/integry/ems/_context/EmsCoreContext.java
+++ b/ems-core/src/main/java/it/integry/ems/_context/EmsCoreContext.java
@@ -23,6 +23,7 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.DriverManager;
import java.util.Arrays;
+import java.util.Enumeration;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutorService;
@@ -72,6 +73,22 @@ public class EmsCoreContext {
@PreDestroy
public void preDestroy() {
contextInitialized = false;
+
+
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Enumeration drivers = DriverManager.getDrivers();
+ logger.info("Deregister DB Drivers");
+
+ while (drivers.hasMoreElements()) {
+ java.sql.Driver driver = drivers.nextElement();
+ if (driver.getClass().getClassLoader() == cl) {
+ try {
+ DriverManager.deregisterDriver(driver);
+ } catch (Exception ex) {
+ // log error
+ }
+ }
+ }
}
//@EventListener(ContextRefreshedEvent.class)
diff --git a/ems-core/src/main/java/it/integry/ems/listener/Log4jShutdownListener.java b/ems-core/src/main/java/it/integry/ems/listener/Log4jShutdownListener.java
new file mode 100644
index 0000000000..029b068170
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/listener/Log4jShutdownListener.java
@@ -0,0 +1,18 @@
+package it.integry.ems.listener;
+
+import org.apache.logging.log4j.LogManager;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+public class Log4jShutdownListener implements ServletContextListener {
+ @Override
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent sce) {
+ LogManager.shutdown();
+ }
+}
diff --git a/ems-engine/src/main/webapp/WEB-INF/web.xml b/ems-engine/src/main/webapp/WEB-INF/web.xml
index 5da3fb596b..b293e1192a 100644
--- a/ems-engine/src/main/webapp/WEB-INF/web.xml
+++ b/ems-engine/src/main/webapp/WEB-INF/web.xml
@@ -19,16 +19,18 @@
log4jConfiguration
classpath:log4j2.xml
-
-
- org.apache.logging.log4j.web.Log4jServletContextListener
-
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
+
+ org.apache.logging.log4j.web.Log4jServletContextListener
+
+
+
+
SpringDispatcherServlet