Websocket дает 404 в jboss4.2 и weblogic

Ниже приведен пример, который я пробовал для веб-сокета,

import java.io.IOException;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;



@ServerEndpoint("/socket")
public class ExampleWebSocket {

     private static Queue<Session> queue = new ConcurrentLinkedQueue<Session>();

     @OnMessage

     public void onMessage(Session session, String msg) {


      try {   

       System.out.println("received msg "+msg+" from "+session.getId());
       ExecutorService executorService = Executors
                .newFixedThreadPool(1);
       ThreadClass newThread = new ThreadClass(session); // a thread class which is going to perform async operations
        Future<String> fut = executorService.submit(newThread);
        int i =10;
        while(fut.isDone()){
            if(i > 50){
                fut.cancel(true);
                return;
            }
            Thread.sleep(1000);
            i++;
        }
        executorService.shutdown();
      } catch (Exception e) {

       e.printStackTrace();

      }

     }

    @OnOpen

     public void open(Session session) {

      queue.add(session);

      System.out.println("New session opened: "+session.getId());

     }

      @OnError

     public void error(Session session, Throwable t) {

      queue.remove(session);

      System.err.println("Error on session "+session.getId());  

     }

     @OnClose

     public void closedConnection(Session session) throws IOException { 

      queue.remove(session);

      System.out.println("session closed: "+session.getId());


     }



}

Я добавил следующую зависимость в свою банку,

 <dependency>
        <groupId>javax.websocket</groupId>
        <artifactId>javax.websocket-api</artifactId>
        <version>1.1</version>
</dependency>

В этом примере я всегда получаю 404, когда пытаюсь нажать из браузера. Наш проект также работает с Spring 3.2. Должен ли я добавлять эту конфигурацию класса в любые файлы xml, такие как we.xml.. Я полностью застрял здесь.

Также я попытался добавить <scope>provided</scope> в зависимость javax.websocket-api, после чего развертывание завершилось неудачей с исключением class not found.


person Hariharan    schedule 26.07.2017    source источник


Ответы (1)


Websocket не поддерживается серверами более ранней версии. Ниже RUL предоставляет нам список поддерживаемых веб-серверов. https://github.com/Atmosphere/atmosphere/wiki/Supported-WebServers-and-Browsers

person Hariharan    schedule 11.08.2017