我正在尝试在Tomcat 8上设置“Echo”websocket示例。我相信我错过了告诉tomcat有关websocket类的步骤。
这就是我所做的:
当我启动应用程序时,我可以导航到echo.xhtml文件,但无论我输入什么网址,我似乎无法弄清楚如何访问网络套接字 - 我总是得到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/classes/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>
答案 0 :(得分:2)
想出来。最新版本的基于war的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