Jetty Websocket编译错误

Jetty Websocket编译错误,websocket,jetty,Websocket,Jetty,我正在尝试做一个JettyWebSocket示例。 我从internet上复制了一个示例,当我直接部署到服务器上而不做任何更改时,该示例运行良好 但是当我将源代码(servlet)复制到EclipseIDE中时,它给出了编译 与……有关的例外情况 The method onClose(int, String) of type Html5Servlet.StockTickerSocket must override a superclass method - The method onOpen

我正在尝试做一个JettyWebSocket示例。 我从internet上复制了一个示例,当我直接部署到服务器上而不做任何更改时,该示例运行良好

但是当我将源代码(servlet)复制到EclipseIDE中时,它给出了编译 与……有关的例外情况

 The method onClose(int, String) of type Html5Servlet.StockTickerSocket must override a superclass method

- The method onOpen(WebSocket.Connection) of type Html5Servlet.StockTickerSocket must override a superclass method

The method onMessage(String) of type Html5Servlet.StockTickerSocket must override a superclass method
这是我的servlet,我保留了该示例中提到的jar

package org.ajeesh.app;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicInteger;

import javax.servlet.http.HttpServletRequest;

import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocketServlet;

public class Html5Servlet extends WebSocketServlet {


    private AtomicInteger index = new AtomicInteger();

    private static final List<String> tickers = new ArrayList<String>();
    static{
        tickers.add("ajeesh");
        tickers.add("peeyu");
        tickers.add("kidillan");
        tickers.add("entammo");
    }

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public WebSocket doWebSocketConnect(HttpServletRequest req, String resp) {
        System.out.println("On server");
        return new StockTickerSocket();
    }
    protected String getMyJsonTicker(){
        StringBuilder start=new StringBuilder("{");
        start.append("\"stocks\":[");
        int counter=0;
        for (String aTicker : tickers) {
            counter++;

            start.append("{ \"ticker\":\""+aTicker +"\""+","+"\"price\":\""+index.incrementAndGet()+"\" }");
            if(counter<tickers.size()){
                start.append(",");
            }
        }
        start.append("]");
        start.append("}");
        return start.toString();
    }
    public class StockTickerSocket implements WebSocket.OnTextMessage{
        private Connection connection;
        private Timer timer; 


        @Override
        public void onClose(int arg0, String arg1) {
            System.out.println("Web socket closed!");
        }

        @Override
        public void onOpen(Connection connection) {
            System.out.println("onOpen!");
            this.connection=connection;
            this.timer=new Timer();
        }

        @Override
        public void onMessage(String data) {
            System.out.println("onMessage!");   
            if(data.indexOf("disconnect")>=0){
                connection.close();
                timer.cancel();
            }else{
                sendMessage();

            }           
        }

        private void sendMessage() {
            System.out.println("sendMessage!");         
            if(connection==null||!connection.isOpen()){
                System.out.println("Connection is closed!!");
                return;
            }
            timer.schedule(new TimerTask() {

                    @Override
                    public void run() {
                        try{
                            System.out.println("Running task");
                            connection.sendMessage(getMyJsonTicker());
                        }
                        catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Date(),5000);
        }

    }
}
package org.ajeesh.app;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.Date;
导入java.util.List;
导入java.util.Timer;
导入java.util.TimerTask;
导入java.util.concurrent.AtomicInteger;
导入javax.servlet.http.HttpServletRequest;
导入org.eclipse.jetty.websocket.websocket;
导入org.eclipse.jetty.websocket.WebSocketServlet;
公共类Html5Servlet扩展了WebSocketServlet{
私有AtomicInteger索引=新的AtomicInteger();
private static final List tickers=new ArrayList();
静止的{
添加(“ajeesh”);
加上(“peeyu”);
添加(“kidillan”);
添加(“恩塔莫”);
}
/**
* 
*/
私有静态最终长serialVersionUID=1L;
公共WebSocket doWebSocketConnect(HttpServletRequest请求,字符串响应){
System.out.println(“在服务器上”);
返回新的StockTickerSocket();
}
受保护的字符串getMyJsonTicker(){
StringBuilder开始=新的StringBuilder(“{”);
开始。追加(“\”股票\“:[”);
int计数器=0;
用于(字符串:标记器){
计数器++;
start.append(“{”ticker\“:\”+aTicker+“+”,“+”price\“:\”+index.incrementAndGet()+“\”);
如果(计数器=0){
connection.close();
timer.cancel();
}否则{
sendMessage();
}           
}
私有void sendMessage(){
System.out.println(“sendMessage!”);
if(connection==null | |!connection.isOpen()){
System.out.println(“连接已关闭!!”;
返回;
}
timer.schedule(新TimerTask(){
@凌驾
公开募捐{
试一试{
System.out.println(“正在运行的任务”);
sendMessage(getMyJsonTicker());
}
捕获(IOE异常){
e、 printStackTrace();
}
}
},新日期(),5000);
}
}
}

jetty的哪个版本?请参阅关于@Override和java接口的旧答案:谢谢,这解决了问题,非常感谢