diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/JettyWebSocketContainerCustomizer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/JettyWebSocketContainerCustomizer.java index 64c02241156..c510f311df5 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/JettyWebSocketContainerCustomizer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/JettyWebSocketContainerCustomizer.java @@ -16,8 +16,10 @@ package org.springframework.boot.autoconfigure.websocket; +import org.eclipse.jetty.util.thread.ShutdownThread; import org.eclipse.jetty.webapp.AbstractConfiguration; import org.eclipse.jetty.webapp.WebAppContext; +import org.eclipse.jetty.websocket.jsr356.server.ServerContainer; import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer; import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory; @@ -38,7 +40,9 @@ public class JettyWebSocketContainerCustomizer extends @Override public void configure(WebAppContext context) throws Exception { - WebSocketServerContainerInitializer.configureContext(context); + ServerContainer serverContainer = WebSocketServerContainerInitializer + .configureContext(context); + ShutdownThread.deregister(serverContainer); } }); diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java index e896dfe4c07..1e8616e9edd 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainer.java @@ -81,6 +81,7 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer { // Start the server so that the ServletContext is available this.server.start(); + this.server.setStopAtShutdown(false); } catch (Exception ex) { // Ensure process isn't left running