Java 获取Websocket服务器终结点中的错误
这是一个文件,我在Java 获取Websocket服务器终结点中的错误,java,websocket,Java,Websocket,这是一个文件,我在import javax.websocket行和@serverEndpoint(“/websocket”)中遇到编译错误。为什么它不接受注释 package pack.exp; import java.io.IOException; import java.util.Collections; import java.util.HashSet; import java.util.Set; import javax.websocket.OnClose; import javax.
import javax.websocket
行和@serverEndpoint(“/websocket”)
中遇到编译错误。为什么它不接受注释
package pack.exp;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class Hello
{
{
private static Set<Session> clients =
Collections.synchronizedSet(new HashSet<Session>());
@OnMessage
public void onMessage(String message, Session session)
throws IOException {
synchronized(clients){
// Iterate over the connected sessions
// and broadcast the received message
for(Session client : clients){
if (!client.equals(session)){
client.getBasicRemote().sendText(message);
}
}
}
}
@OnOpen
public void onOpen (Session session) {
// Add session to the connected sessions set
clients.add(session);
}
@OnClose
public void onClose (Session session) {
// Remove session from the connected sessions set
clients.remove(session);
}
}
}
package pack.exp;
导入java.io.IOException;
导入java.util.Collections;
导入java.util.HashSet;
导入java.util.Set;
导入javax.websocket.OnClose;
导入javax.websocket.OnMessage;
导入javax.websocket.OnOpen;
导入javax.websocket.Session;
导入javax.websocket.server.ServerEndpoint;
@ServerEndpoint(“/websocket”)
公共课你好
{
{
专用静态集客户端=
Collections.synchronizedSet(新HashSet());
@OnMessage
公共void onMessage(字符串消息、会话)
抛出IOException{
已同步(客户端){
//迭代连接的会话
//并广播接收到的消息
用于(会话客户端:客户端){
如果(!client.equals(会话)){
client.getBasicRemote().sendText(消息);
}
}
}
}
@奥诺彭
公共开放(会议){
//将会话添加到已连接的会话集
添加(会话);
}
@一次
公共void onClose(会话){
//从已连接的会话集中删除会话
客户端。删除(会话);
}
}
}
请帮我纠正这个错误。在这段代码中是否有我必须实现的特定api?缺少的类是JavaEE7API的一部分。 如果您正在使用maven构建项目,请看一看 在以下存储库中 并将此依赖项添加到项目中:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
爪哇
然后是API。JSR-356将javax.websocket
下的类定义为独立类。它们可以在完全独立的服务器上运行,也可以在JavaEE7容器中运行
如果您只使用了javax.websocket
,而不关心JavaEE7的其余部分,那么只需在提供的范围内使用正式的javax.websocket
工件即可
这里是直接到工件的搜索查找
这是maven中央存储库系统的官方搜索页面,它还包括对maven、grails、ivy、buildr、grape和sbt工件的构建系统引用
maven pom参考是:
javax.websocket
javax.websocket-api
1
假如
确保在*.war
文件中不包含此工件,因为此功能将由您决定部署到的任何容器提供。(如Eclipse Jetty 9.1+或Apache Tomcat 8.0+)您可以新添加服务器,比如说Tomcat 7.0,此错误将自动解决。因为支持jar在tomcat库中可用。在此处添加堆栈跟踪。@Kugathasan Abimara 1.无法解析导入javax.websocket 2.无法解析为类型您需要在类路径中添加该库jar。@Kugathasan Abimaran Ok,你能告诉我需要哪些jar文件吗?我可以从哪里下载这些文件,用于maven central repository的官方搜索,它也是最新的:)我想OP正在尝试在不重新安装服务器的情况下解决这个问题。我一点也不知道,我想这是一个不用再添加服务器的好方法。这对我来说很有效,所以我只是建议@安迪