diff --git a/libresonic-main/pom.xml b/libresonic-main/pom.xml
index 910b1119..d26d8cc8 100644
--- a/libresonic-main/pom.xml
+++ b/libresonic-main/pom.xml
@@ -38,6 +38,10 @@
test
+
+ org.springframework
+ spring-core
+
org.springframework
diff --git a/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java b/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java
new file mode 100644
index 00000000..14c753a4
--- /dev/null
+++ b/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java
@@ -0,0 +1,26 @@
+package org.libresonic.player.spring;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.libresonic.player.Logger;
+import org.springframework.core.Ordered;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.ModelAndView;
+
+public class LoggingExceptionResolver implements HandlerExceptionResolver, Ordered {
+
+ private static final Logger logger = Logger.getLogger(LoggingExceptionResolver.class);
+
+ @Override
+ public ModelAndView resolveException(
+ HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e
+ ) {
+ logger.error("Exception occurred", e);
+ return null;
+ }
+
+ @Override
+ public int getOrder() {
+ return Integer.MIN_VALUE;
+ }
+}
diff --git a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
index 738296cf..d1a1ca92 100644
--- a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
+++ b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
@@ -366,4 +366,5 @@
+
diff --git a/pom.xml b/pom.xml
index 1070b1e4..510cbff9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,6 +95,11 @@
+
+ org.springframework
+ spring-core
+ ${spring.version}
+
org.springframework
spring-webmvc