Tomcat7 Websocket聊天示例:如何加载Websocket服务器?

Tomcat7 Websocket聊天示例:如何加载Websocket服务器?,websocket,tomcat7,Websocket,Tomcat7,我正在尝试使用websockets创建我自己的聊天客户端,我想我应该从这个开始。我已经用Eclipse成功地编译和部署了chatnotation类,但是当我将chat.html文件重定向到我认为端点应该是的位置时,什么也没有发生 ,它们有一个@ServerEndpoint(value=“/websocket/chat”)注释,我不确定需要做什么(即在web.xml中)才能在服务器启动时加载该类并绑定该端点 我在构造函数中放置了断点,以查看它是否在部署时创建,而不是。您不需要web.xml中的任何

我正在尝试使用websockets创建我自己的聊天客户端,我想我应该从这个开始。我已经用Eclipse成功地编译和部署了
chatnotation
类,但是当我将chat.html文件重定向到我认为端点应该是的位置时,什么也没有发生

,它们有一个
@ServerEndpoint(value=“/websocket/chat”)
注释,我不确定需要做什么(即在web.xml中)才能在服务器启动时加载该类并绑定该端点


我在构造函数中放置了断点,以查看它是否在部署时创建,而不是。

您不需要web.xml中的任何特殊配置。您是否在本地的Tomcat的正确版本上运行它?此注释仅适用于Tomcat 7.0.47。另外,如果您使用的是Maven,那么这就是我使用的依赖项—它指定了websocket api,以便代码可以编译,但假设运行时环境将提供必要的库。您将在tomcat-7.0.47/lib中找到websocket-api.jar和tomcat7-websocket.jar

    <dependency>
        <groupId>javax.websocket</groupId>
        <artifactId>javax.websocket-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>

javax.websocket
javax.websocket-api
1
假如
这里是“小魔术”:

必须在类路径中实现接口:

应用程序可以提供此接口的实现,以过滤已部署的已发现WebSocket端点。此类的实现将通过ServletContainerInitializer扫描发现

如果使用Tomcat示例,则类存在于
{CATALINA_BASE}\webapps\examples\WEB-INF\classes\websocket\ExamplesConfig.java
(随compiled.class一起提供)



最后但并非最不重要的一点:随着Tomcat的发现,您不必在
WEB-INF/WEB.xml
中注册任何servlet。此文件必须存在,但内容最少。

我认为这不是真的。正如您所引用的,“应用程序可能会提供此接口的实现,以过滤已部署的已发现WebSocket端点。”听起来您不必拥有它,事实上,当我部署相同的示例时,没有它也可以正常工作。