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.
This commit is contained in:
Rossen Stoyanchev
2013-07-25 13:20:24 -04:00
parent bc5246938d
commit 7bb9c63963
2 changed files with 5 additions and 15 deletions

View File

@@ -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);

View File

@@ -10,20 +10,8 @@
</layout>
</appender>
<logger name="org.springframework.samples">
<level value="debug" />
</logger>
<logger name="org.springframework.web">
<level value="debug" />
</logger>
<logger name="org.springframework.web.socket">
<level value="trace" />
</logger>
<logger name="org.springframework.web.stomp">
<level value="trace" />
<level value="debug" />
</logger>
<root>