gpt4 book ai didi

java - Jetty 服务器上的 STOMP sockJS 和 ActiveMQ

转载 作者:行者123 更新时间:2023-12-01 19:35:41 26 4
gpt4 key购买 nike

我正在尝试在 karaf osgi 框架中通过 Jetty 服务器使用 STOMP 与 SockJS 和 ActiveMQ。我能够在嵌入式 Tomcat 服务器上运行 WebSocket,但在与 Jetty 服务器一起使用时出现问题。我的 karaf 在内部使用 Jetty 服务器。

 transports.add(new WebSocketTransport(new StandardWebSocketClient())); // Got error for this in jetty

因此将StandardWebSocketClient更改为JettyWebSocketClient

public static void main( String[] args ) throws Exception {
StompSession session = createStompWSConnection(WEBSOCKET_URI, new MyStompSessionHandler());
System.out.println("Session = " + session.getSessionId());
}

public static StompSession createStompWSConnection(String socketURL,StompSessionHandler sessionHandler) throws Exception {
List<Transport> transports = new ArrayList<Transport>();

//transports.add(new WebSocketTransport(new StandardWebSocketClient()));
transports.add(new WebSocketTransport(new JettyWebSocketClient()));

SockJsClient sockJsClient = new SockJsClient(transports);
WebSocketStompClient stompClient = new WebSocketStompClient(sockJsClient);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
//stompClient.setMessageConverter(new Mapp);

StompSession session = stompClient.connect(socketURL,sessionHandler).get(); //error occurs here
System.out.println("Session : " + session);
session.subscribe("/queue/msg", sessionHandler);
return session;
}

我收到此错误:

Caused by: java.lang.ClassNotFoundException: javax.websocket.ClientEndpointConfig$Configurator
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more

编辑 2 -

添加了 Jetty Websocket 客户端依赖项,现在我收到此错误 -

<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-client</artifactId>
<version>9.3.2.v20150730</version>
</dependency>

异常 -

Exception in thread "main" java.util.concurrent.ExecutionException: java.lang.IllegalStateException: WebSocketClient@2092066706 is not started
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.springframework.util.concurrent.SettableListenableFuture.get(SettableListenableFuture.java:122)
at com.spring.jms.sockJS.App.createStompWSConnection(App.java:44)
at com.spring.jms.sockJS.App.main(App.java:27)

最佳答案

异常表明问题是什么:

Caused by: java.lang.ClassNotFoundException: javax.websocket.ClientEndpointConfig$Configurator
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more

找不到类javax.websocket.ClientEndpointConfig$Configurator。请确保正确的类加载器可以访问运行您的应用程序所需的所有类。

关于java - Jetty 服务器上的 STOMP sockJS 和 ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57675773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com