I am attempting to connect to a SockJs web sockets server via Spring 4.2 WebsocketClient support. This is my client so far:
public static void main(String[] args) throws Exception {
WebSocketClient transport = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(transport);
stompClient.setMessageConverter(new StringMessageConverter());
String url = "ws://localhost:8080/priceticker/ws";
StompSessionHandler handler = new WSClient() ;
stompClient.connect(url, handler);
}
this will provide the connection I need to subscribe to my channel. When I run the code, I get the following exception:
Exception in thread "main" java.lang.RuntimeException: Could not find an implementation class.
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73)
at org.springframework.web.socket.client.standard.StandardWebSocketClient.<init>(StandardWebSocketClient.java:76)
at Main.main(Main.java:10)
I understand I need to provide a WebSocketContainer to the project in the META-INF folder, as instructed by the comments on the failing method:
* Obtain a new instance of a WebSocketContainer. The method looks for the
* ContainerProvider implementation class in the order listed in the META-INF/services/javax.websocket.ContainerProvider
* file, returning the WebSocketContainer implementation from the ContainerProvider implementation
But I do not understand how to wire a file into the constructor without any arguments. I have attempted to follow the examples in this test case but without any luck. I just need to understand what exactly the container is and how to implement it into my project