Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取Websocket服务器终结点中的错误_Java_Websocket - Fatal编程技术网

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正在尝试在不重新安装服务器的情况下解决这个问题。我一点也不知道,我想这是一个不用再添加服务器的好方法。这对我来说很有效,所以我只是建议@安迪