Skip to content

Commit 7bb9c63

Browse files
committed
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.
1 parent bc52469 commit 7bb9c63

File tree

2 files changed

+5
-15
lines changed

2 files changed

+5
-15
lines changed

spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.lang.reflect.Method;
2121
import java.util.Collections;
2222

23+
import javax.servlet.ServletContext;
2324
import javax.servlet.ServletException;
2425
import javax.servlet.http.HttpServletRequest;
2526
import javax.websocket.Endpoint;
@@ -74,8 +75,9 @@ public void upgradeInternal(ServerHttpRequest request, ServerHttpResponse respon
7475
throw new HandshakeFailureException("Failed to upgrade HttpServletRequest", ex);
7576
}
7677

77-
// TODO: use ServletContext attribute when Tomcat is updated
78-
WsServerContainer serverContainer = WsServerContainer.getServerContainer();
78+
String attribute = "javax.websocket.server.ServerContainer";
79+
ServletContext servletContext = servletRequest.getServletContext();
80+
WsServerContainer serverContainer = (WsServerContainer) servletContext.getAttribute(attribute);
7981

8082
ServerEndpointConfig endpointConfig = new ServerEndpointRegistration("/shouldntmatter", endpoint);
8183

spring-websocket/src/test/resources/log4j.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,8 @@
1010
</layout>
1111
</appender>
1212

13-
<logger name="org.springframework.samples">
14-
<level value="debug" />
15-
</logger>
16-
17-
<logger name="org.springframework.web">
18-
<level value="debug" />
19-
</logger>
20-
2113
<logger name="org.springframework.web.socket">
22-
<level value="trace" />
23-
</logger>
24-
25-
<logger name="org.springframework.web.stomp">
26-
<level value="trace" />
14+
<level value="debug" />
2715
</logger>
2816

2917
<root>

0 commit comments

Comments
 (0)