亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Jetty 服務器上的 STOMP sockJS 和 ActiveMQ

Jetty 服務器上的 STOMP sockJS 和 ActiveMQ

DIEA 2023-06-21 13:52:10
我正在嘗試在框架中的 Jetty 服務器上使用 STOMP 與 SockJS 和 ActiveMQ karaf osgi。我能夠在嵌入式 Tomcat 服務器上運行 WebSocket,但在與 Jetty 服務器一起使用時出現問題。我的 karaf 在內部使用 Jetty 服務器。 transports.add(new WebSocketTransport(new StandardWebSocketClient())); // Got error for this in jetty所以StandardWebSocketClient改為JettyWebSocketClientpublic 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>
查看完整描述

2 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

異常表明問題是什么:

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找不到該類。請確保正確的類加載器可以訪問所有必要的類來運行您的應用程序。


查看完整回答
反對 回復 2023-06-21
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

問題是在連接時stompClient.connect(socketURL,sessionHandler).get();我還添加了實際發生錯誤的注釋。transports.add(new WebSocketTransport(new JettyWebSocketClient()));我通過替換為解決了這個問題transports.add(new RestTemplateXhrTransport());


以下是變化:


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()));

    transports.add(new RestTemplateXhrTransport());

    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;

}


查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號