Tomcat7 Websocket聊天示例:如何加载Websocket Server?

时间:2013-03-23 16:48:25

标签: websocket tomcat7

我正在尝试使用websockets创建自己的聊天客户端,并认为我会从Tomcat 7 websocket chat example code.开始。我已经使用Eclipse成功编译和部署了ChatAnnotation类,但是当我将chat.html文件重定向到我认为端点应该是什么时,没有任何反应。

In the sample class,他们有@ServerEndpoint(value = "/websocket/chat")注释,我不确定我需要做什么(即在web.xml中)才能让该类在服务器启动时加载并具有该功能端点限制。

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

2 个答案:

答案 0 :(得分:4)

这是"小魔术":

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

  

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

如果您使用Tomcat示例,{CATALINA_BASE}\webapps\examples\WEB-INF\classes\websocket\ExamplesConfig.java中存在一个类(随编译的.class一起提供)


最后但并非最不重要的是,因为Tomcat 发现事情,您不必在WEB-INF/web.xml中注册任何servlet。这个文件必须存在,但只需要很少的东西。

答案 1 :(得分:0)

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

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