diff --git a/cometd-java/cometd-java-client/cometd-java-client-websocket/cometd-java-client-websocket-javax/src/main/java/org/cometd/client/websocket/javax/WebSocketTransport.java b/cometd-java/cometd-java-client/cometd-java-client-websocket/cometd-java-client-websocket-javax/src/main/java/org/cometd/client/websocket/javax/WebSocketTransport.java index 7bd8b85153..198ff72405 100644 --- a/cometd-java/cometd-java-client/cometd-java-client-websocket/cometd-java-client-websocket-javax/src/main/java/org/cometd/client/websocket/javax/WebSocketTransport.java +++ b/cometd-java/cometd-java-client/cometd-java-client-websocket/cometd-java-client-websocket-javax/src/main/java/org/cometd/client/websocket/javax/WebSocketTransport.java @@ -31,7 +31,6 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; - import javax.websocket.ClientEndpointConfig; import javax.websocket.CloseReason; import javax.websocket.ContainerProvider; @@ -42,7 +41,6 @@ import javax.websocket.MessageHandler; import javax.websocket.Session; import javax.websocket.WebSocketContainer; - import org.cometd.bayeux.Message.Mutable; import org.cometd.client.transport.ClientTransport; import org.cometd.client.transport.TransportListener; @@ -258,6 +256,13 @@ public void afterResponse(HandshakeResponse hr) { public static class Factory extends ContainerLifeCycle implements ClientTransport.Factory { private final WebSocketContainer container = ContainerProvider.getWebSocketContainer(); + public Factory() { + // The WebSocketContainer comes from the Servlet Container, + // so its lifecycle cannot be managed by this class due to + // classloader differences; we just add it for dump() purposes. + addBean(container, false); + } + @Override public ClientTransport newClientTransport(String url, Map options) { ScheduledExecutorService scheduler = (ScheduledExecutorService)options.get(ClientTransport.SCHEDULER_OPTION);