I was able to duplicate the issue with a test websocket that does what SmartGWT does in the root webapp. The issue is “war” specific and is caused by Isomorphic.
Instead of just using a @ServerEndpoint annotation they are extending endpoint and using their own configuration (extends Endpoint implements ServerApplicationConfig). When you do this there is a method you must override (public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> scanned) ) that is given a set of the annotated endpoints there were found, and allowed to keep / remove / add anything to this list before the server (tyrus) processes it.
They simply return an empty set. If they just returned what is passed in it would work (I tested it).
Here a full example of the required implementation of websockets:
https://abhirockzz.wordpress.com/201...ints-together/
Instead of just using a @ServerEndpoint annotation they are extending endpoint and using their own configuration (extends Endpoint implements ServerApplicationConfig). When you do this there is a method you must override (public Set<ServerEndpointConfig> getEndpointConfigs(Set<Class<? extends Endpoint>> scanned) ) that is given a set of the annotated endpoints there were found, and allowed to keep / remove / add anything to this list before the server (tyrus) processes it.
They simply return an empty set. If they just returned what is passed in it would work (I tested it).
Code:
// bad public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scanned) { Set results = new HashSet(); return results; } // good public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scanned) { return scanned; }
https://abhirockzz.wordpress.com/201...ints-together/
Comment