jboss4.2和weblogic中提供404的Websocket

jboss4.2和weblogic中提供404的Websocket,websocket,java-websocket,Websocket,Java Websocket,下面是我为websocket尝试的示例 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

下面是我为websocket尝试的示例

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


     }



}
import java.io.IOException;
导入java.util.Queue;
导入java.util.concurrent.ConcurrentLinkedQueue;
导入java.util.concurrent.ExecutorService;
导入java.util.concurrent.Executors;
导入java.util.concurrent.Future;
导入javax.websocket.OnClose;
导入javax.websocket.OnError;
导入javax.websocket.OnMessage;
导入javax.websocket.OnOpen;
导入javax.websocket.Session;
导入javax.websocket.server.ServerEndpoint;
@ServerEndpoint(“/socket”)
公共类示例WebSocket{
私有静态队列=新ConcurrentLinkedQueue();
@OnMessage
公共void onMessage(会话,字符串msg){
试试{
System.out.println(“从“+session.getId()”接收到消息“+msg+”);
ExecutorService ExecutorService=执行者
.newFixedThreadPool(1);
ThreadClass newThread=newThreadClass(会话);//将执行异步操作的线程类
Future fut=executorService.submit(newThread);
int i=10;
while(fut.isDone()){
如果(i>50){
未来取消(真);
返回;
}
睡眠(1000);
i++;
}
executorService.shutdown();
}捕获(例外e){
e、 printStackTrace();
}
}
@奥诺彭
公开作废开放(会议){
添加(会话);
System.out.println(“新会话已打开:+session.getId());
}
@一个错误
公共无效错误(会话,可丢弃的t){
队列。删除(会话);
System.err.println(“会话出错”+session.getId());
}
@一次
public void closedConnection(会话)引发IOException{
队列。删除(会话);
System.out.println(“会话关闭:+session.getId());
}
}
我在我的jar中添加了以下依赖项

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

javax.websocket
javax.websocket-api
1.1
在这个例子中,当我试图从浏览器中点击时,我总是得到404。 我们的项目也运行Spring3.2。我是否必须在任何xml文件(如we.xml.)中添加此类配置。。我完全被困在这里了


我还尝试在javax.websocket-api的依赖项中添加
提供的
,然后部署失败,类未找到异常。

较低版本的服务器不支持websocket。 下面是websocket支持的web服务器列表。
较低版本的服务器不支持Websocket。 下面是websocket支持的web服务器列表。