Java 在另一个类中使用会话接口
我有一个使用websocket API来处理websocket的web应用程序,下面是该部分的代码Java 在另一个类中使用会话接口,java,session,tomcat,websocket,Java,Session,Tomcat,Websocket,我有一个使用websocket API来处理websocket的web应用程序,下面是该部分的代码 package comm2.hello; import java.io.IOException; import java.util.ArrayList; import javax.websocket.OnClose; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.ser
package comm2.hello;
import java.io.IOException;
import java.util.ArrayList;
import javax.websocket.OnClose;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.apache.catalina.session.*;
@ServerEndpoint(value = "/echo")
public class wschat {
private static ArrayList<Session> sessionList = new ArrayList<Session>();
@OnOpen
public void onOpen(Session session) {
try {
sessionList.add(session);
// asynchronous communication
session.getBasicRemote().sendText("hello");
} catch (IOException e) {
}
}
public void send(String text, Session session) throws IOException {
session.getBasicRemote().sendText(text);
}
}
如您所见,我将
main.java
类中的session
变量设置为null
,这将始终产生null指针
错误。这是因为我不确定如何使session
等于,是否有人知道在main.java
中将session
变量初始化为什么?session是一个接口而不是类对象。您可能想要实现session的东西。@brso05对此不知道,很抱歉。所以我希望我的类可以扩展会话,如果我想的对或者实现它的话?如果你想创建一个会话,你可以自己实现它,或者可能已经有Java实现了。我不熟悉websocket,但当我在javax.websocket.Session包中查找会话时,它说它是一个接口,因此不能从中创建对象。
package comms;
import java.io.IOException;
import java.util.ArrayList;
import javax.websocket.Session;
import javax.websocket.Session;
import comm2.hello.*;
public class main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
wschat h = new wschat();
String text = "hello";
//session shouldn't be null but not sure what to make it
Session session = null;
h.send(text,session);
}
}