From 7bb9c6396321a2af04d5322612664672e8df2025 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 25 Jul 2013 13:20:24 -0400 Subject: [PATCH] Fix issue in TomcatRequestUpgradeStrategy The method WsServerContainer.getServerContainer() was removed from JSR-356 but remained in Tomcat a little while longer. Instead the ServerContainer is obtained through a ServletContext attribute. Tomcat has now removed this method, hence the need for this fix. --- .../support/TomcatRequestUpgradeStrategy.java | 6 ++++-- spring-websocket/src/test/resources/log4j.xml | 14 +------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java index 0657314c8a..b03c8d4985 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.lang.reflect.Method; import java.util.Collections; +import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.websocket.Endpoint; @@ -74,8 +75,9 @@ public class TomcatRequestUpgradeStrategy extends AbstractStandardUpgradeStrateg throw new HandshakeFailureException("Failed to upgrade HttpServletRequest", ex); } - // TODO: use ServletContext attribute when Tomcat is updated - WsServerContainer serverContainer = WsServerContainer.getServerContainer(); + String attribute = "javax.websocket.server.ServerContainer"; + ServletContext servletContext = servletRequest.getServletContext(); + WsServerContainer serverContainer = (WsServerContainer) servletContext.getAttribute(attribute); ServerEndpointConfig endpointConfig = new ServerEndpointRegistration("/shouldntmatter", endpoint); diff --git a/spring-websocket/src/test/resources/log4j.xml b/spring-websocket/src/test/resources/log4j.xml index 8b7bac45ad..4c016a6267 100644 --- a/spring-websocket/src/test/resources/log4j.xml +++ b/spring-websocket/src/test/resources/log4j.xml @@ -10,20 +10,8 @@ - - - - - - - - - - - - - +