Jetty Websocket编译错误
我正在尝试做一个JettyWebSocket示例。 我从internet上复制了一个示例,当我直接部署到服务器上而不做任何更改时,该示例运行良好 但是当我将源代码(servlet)复制到EclipseIDE中时,它给出了编译 与……有关的例外情况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
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接口的旧答案:谢谢,这解决了问题,非常感谢