2

我正在尝试在 Tomcat 8 上设置“Echo”websocket 示例。我相信我错过了告诉 tomcat 有关 websocket 类的步骤。

这是我所做的:

  • 在 Eclipse 中新建了一个动态 web 项目,添加了 maven,并链接了 tomcat 8 运行时
  • 将 EchoAnotation.java、EchoEndpoint.java、ExamplesConfig.java 和 echo.xhtml 复制到项目中。
  • 启动了应用程序。

当我启动应用程序时,我可以导航到 echo.xhtml 文件,但是无论我输入什么 url,我似乎都无法弄清楚如何访问网络套接字——我总是得到 404。在构造函数中放置断点,看起来 websocket 类没有被加载。

通常您在 web.xml 或其他一些框架配置中设置类配置,但我在 Tomcat8 SVN(或任何其他 xml)上的示例 web.xml 中找不到匹配的配置。

关于这是如何完成的任何见解?

谢谢!


源代码

EchoAnotation.java、EchoEndpoint.java、ExamplesConfig.java 位置

http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/ http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB- INF/类/websocket/echo

Echo.xhtml 位置

http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/websocket/

示例 web.xml 位置

http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/

我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"> 
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>
4

1 回答 1

2

弄清楚了。最新版本的基于战争的 web 应用程序会自动进行组件扫描。我的不是,因为我已经包括了这个:

如果您包含了tomcat,请不要包含!

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

Websocket端点参考:

https://tyrus.java.net/documentation/1.3.3/index/deployment.html

于 2013-12-22T17:05:57.493 回答