0

I'm currently working on a Dropwizard 4 project with Jetty 11, and I'm having trouble setting up WebSocket support. Previous recommendations recommend using https://github.com/LivePersonInc/dropwizard-websockets but that seems to be outdated. All recommendations that I have found use a class JettyWebSocketServletContainerInitializer which I can't find in any of the dependencies that I have. I am using dropwizard guicy, but I don't think that has any effect here.

Current Dependencies:

<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jakarta-server</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jetty-server</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jetty-api</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jakarta-common</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-core-server</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-core-common</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jetty-client</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-jetty-common</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-servlet</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-server</artifactId> <version>9.4.56.v20240826</version> </dependency> <dependency> <groupId>jakarta.websocket</groupId> <artifactId>jakarta.websocket-api</artifactId> <version>2.1.1</version> </dependency> 

All the ones without versions are using the 11.0.20. I realise I don't need all these dependencies, if you could let me know what I am missing and which ones I need that would be great. I've tried various versions to try and get it to work but I'm clearly missing something.

A small code snippet of the setup in the application would be really helpful.

1 Answer 1

0

This project helped me out: https://github.com/TomCools/dropwizard-websocket-jsr356-bundle.

If you are using Guice for DI, you'll want to add a Configurator:

 ServerEndpointConfig serverEndpointConfig = ServerEndpointConfig.Builder.create(MyWebsocketServer.class, "/my-ws-enpoint") .configurator(new GuiceConfigurator()) .build(); class GuiceConfigurator extends ServerEndpointConfig.Configurator { @Override public <T> T getEndpointInstance(Class<T> endpointClass) throws InstantiationException { return injector.getInstance(endpointClass); } }

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.